30 lines
1 KiB
TypeScript
30 lines
1 KiB
TypeScript
import { GetServerSidePropsContext, PreviewData } from "next"
|
|
import { ParsedUrlQuery } from "querystring"
|
|
import getTokenFromCookie from "../backend/components/getTokenFromCookie"
|
|
import checkTokenIsValid from "../backend/components/checkTokenIsValid"
|
|
import getTokenDB from "../backend/components/getTokenDB"
|
|
import getPlayerByIdDB from "../backend/components/getPlayerByIdDB"
|
|
import logging from "../backend/logging"
|
|
|
|
export default async function checkIsLoggedIn(
|
|
context: GetServerSidePropsContext<ParsedUrlQuery, PreviewData>
|
|
) {
|
|
const req: any = context.req
|
|
const res: any = context.res
|
|
|
|
const isLoggedIn = await getTokenFromCookie(req, res, (token) =>
|
|
checkTokenIsValid(req, res, token, (tokenBody) =>
|
|
getTokenDB(req, res, tokenBody, token[1], (tokenDB) =>
|
|
getPlayerByIdDB(req, res, tokenDB, (player) => !!player)
|
|
)
|
|
)
|
|
).catch(() => false)
|
|
|
|
logging(
|
|
"loginCheck " + (isLoggedIn ? true : "-> loggedIn: " + false),
|
|
["debug", "infoCyan"],
|
|
req
|
|
)
|
|
|
|
return isLoggedIn
|
|
}
|