leaky-ships/leaky-ships/lib/frontend/checkIsLoggedIn.ts
2023-04-08 16:56:03 +02:00

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
}