Remove response function
This commit is contained in:
parent
2a009585f4
commit
ac578e9247
4 changed files with 48 additions and 95 deletions
|
@ -1,14 +1,11 @@
|
|||
import type { NextApiRequest, NextApiResponse } from "next"
|
||||
import type { Token } from "@prisma/client"
|
||||
import sendError from "../../lib/backend/components/sendError"
|
||||
import getTokenFromCookie from "../../lib/backend/components/getTokenFromCookie"
|
||||
import checkTokenIsValid from "../../lib/backend/components/checkTokenIsValid"
|
||||
import getTokenDB from "../../lib/backend/components/getTokenDB"
|
||||
import getPlayerByIdDB from "../../lib/backend/components/getPlayerByIdDB"
|
||||
import createTokenDB, {
|
||||
RawToken,
|
||||
} from "../../lib/backend/components/createTokenDB"
|
||||
import sendResponse, { Result } from "../../lib/backend/components/sendResponse"
|
||||
import createTokenDB from "../../lib/backend/components/createTokenDB"
|
||||
import sendResponse from "../../lib/backend/components/sendResponse"
|
||||
|
||||
interface Data {
|
||||
token: string
|
||||
|
@ -26,23 +23,14 @@ export default async function auth(
|
|||
getTokenDB(context, token, (tokenDB) => {
|
||||
getPlayerByIdDB(context, tokenDB, (player) => {
|
||||
createTokenDB(player, type, (newToken, newTokenDB) => {
|
||||
sendResponse(context, authResponse(newToken, newTokenDB, tokenDB))
|
||||
sendResponse(context, {
|
||||
message: `Access-Token generated: ${newTokenDB.id} with Refreshtoken-Token: ${tokenDB.id}`,
|
||||
body: { token: newToken.value },
|
||||
type: ["debug", "infoCyan"],
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
}).catch((err) => sendError(context, err))
|
||||
}
|
||||
|
||||
function authResponse(
|
||||
newToken: RawToken,
|
||||
newTokenDB: Token,
|
||||
tokenDB: Token
|
||||
): Result<Data> {
|
||||
// Successfull response
|
||||
return {
|
||||
message: `Access-Token generated: ${newTokenDB.id} with Refreshtoken-Token: ${tokenDB.id}`,
|
||||
body: { token: newToken.value },
|
||||
type: ["debug", "infoCyan"],
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import type { NextApiRequest, NextApiResponse } from "next"
|
||||
import type { Game, Player, Token } from "@prisma/client"
|
||||
import type { Game } from "@prisma/client"
|
||||
import getTokenFromBody from "../../lib/backend/components/getTokenFromBody"
|
||||
import checkTokenIsValid from "../../lib/backend/components/checkTokenIsValid"
|
||||
import getTokenDB from "../../lib/backend/components/getTokenDB"
|
||||
import getPlayerByIdDB from "../../lib/backend/components/getPlayerByIdDB"
|
||||
import sendResponse, { Result } from "../../lib/backend/components/sendResponse"
|
||||
import sendResponse from "../../lib/backend/components/sendResponse"
|
||||
import sendError from "../../lib/backend/components/sendError"
|
||||
|
||||
interface Data {
|
||||
|
@ -21,19 +21,14 @@ export default async function data(
|
|||
checkTokenIsValid(context, accessToken, (token) => {
|
||||
getTokenDB(context, token, (tokenDB) => {
|
||||
getPlayerByIdDB(context, tokenDB, (player) => {
|
||||
sendResponse(context, dataResponse(player, tokenDB))
|
||||
const games: any = {}
|
||||
sendResponse(context, {
|
||||
message: `Requested data of user: ${player.id} with Access-Token: ${tokenDB.id}`,
|
||||
body: { games },
|
||||
type: ["debug", "infoCyan"],
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
}).catch((err) => sendError(context, err))
|
||||
}
|
||||
|
||||
function dataResponse(player: Player, tokenDB: Token): Result<Data> {
|
||||
const games: any = {}
|
||||
// Successfull response
|
||||
return {
|
||||
message: `Requested data of user: ${player.id} with Access-Token: ${tokenDB.id}`,
|
||||
body: { games },
|
||||
type: ["debug", "infoCyan"],
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,18 +1,15 @@
|
|||
import type { NextApiRequest, NextApiResponse } from "next"
|
||||
import type { Player, Token } from "@prisma/client"
|
||||
import logging from "../../lib/backend/logging"
|
||||
import getPlayerByNameDB from "../../lib/backend/components/getPlayerByNameDB"
|
||||
import checkPasswordIsValid from "../../lib/backend/components/checkPasswordIsValid"
|
||||
import createTokenDB, {
|
||||
RawToken,
|
||||
} from "../../lib/backend/components/createTokenDB"
|
||||
import sendResponse, { Result } from "../../lib/backend/components/sendResponse"
|
||||
import createTokenDB from "../../lib/backend/components/createTokenDB"
|
||||
import sendResponse from "../../lib/backend/components/sendResponse"
|
||||
import { setCookie } from "cookies-next"
|
||||
import prisma from "../../lib/prisma"
|
||||
import jwt from "jsonwebtoken"
|
||||
import errors from "../../lib/backend/errors"
|
||||
import sendError, { API } from "../../lib/backend/components/sendError"
|
||||
import getUserFromBody from "../../lib/backend/components/getUserFromBody"
|
||||
import { rejectionErrors } from "../../lib/backend/errors"
|
||||
|
||||
interface Data {
|
||||
loggedIn: boolean
|
||||
|
@ -29,10 +26,26 @@ export default async function login(
|
|||
getPlayerByNameDB(context, username, (player) => {
|
||||
checkPasswordIsValid(context, player, password, () => {
|
||||
createTokenDB(player, "REFRESH", (newToken, newTokenDB) => {
|
||||
sendResponse(
|
||||
context,
|
||||
loginResponse(context, player, newToken, newTokenDB)
|
||||
)
|
||||
// Set login cookie
|
||||
setCookie("token", newToken.value, {
|
||||
req,
|
||||
res,
|
||||
maxAge: 172800,
|
||||
httpOnly: true,
|
||||
sameSite: true,
|
||||
secure: true,
|
||||
path: "/api",
|
||||
})
|
||||
|
||||
sendResponse(context, {
|
||||
message:
|
||||
"User " +
|
||||
player.id +
|
||||
" logged in and generated Refresh-Token: " +
|
||||
newTokenDB.id,
|
||||
body: { loggedIn: true },
|
||||
type: ["debug", "infoCyan"],
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
@ -45,7 +58,7 @@ async function preCheck(context: API, next: () => void) {
|
|||
const oldRefreshToken = req.cookies.token
|
||||
|
||||
try {
|
||||
if (!oldRefreshToken) return sendError(context, errors.noCookie)
|
||||
if (!oldRefreshToken) return sendError(context, rejectionErrors.noCookie)
|
||||
// Check for old cookie, if unused invalidate it
|
||||
const tokenData = jwt.verify(
|
||||
oldRefreshToken,
|
||||
|
@ -79,36 +92,3 @@ async function preCheck(context: API, next: () => void) {
|
|||
|
||||
return next()
|
||||
}
|
||||
|
||||
function loginResponse(
|
||||
context: API,
|
||||
player: Player,
|
||||
newToken: RawToken,
|
||||
newTokenDB: Token
|
||||
): Result<Data> {
|
||||
const { req, res } = context
|
||||
// const { player, req, res } = payload
|
||||
const { value } = newToken
|
||||
|
||||
// Set login cookie
|
||||
setCookie("token", value, {
|
||||
req,
|
||||
res,
|
||||
maxAge: 172800,
|
||||
httpOnly: true,
|
||||
sameSite: true,
|
||||
secure: true,
|
||||
path: "/api",
|
||||
})
|
||||
|
||||
// Successfull response
|
||||
return {
|
||||
message:
|
||||
"User " +
|
||||
player.id +
|
||||
" logged in and generated Refresh-Token: " +
|
||||
newTokenDB.id,
|
||||
body: { loggedIn: true },
|
||||
type: ["debug", "infoCyan"],
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import type { NextApiRequest, NextApiResponse } from "next"
|
||||
import type { Token } from "@prisma/client"
|
||||
import checkTokenIsValid from "../../lib/backend/components/checkTokenIsValid"
|
||||
import sendResponse, { Result } from "../../lib/backend/components/sendResponse"
|
||||
import sendResponse from "../../lib/backend/components/sendResponse"
|
||||
import sendError from "../../lib/backend/components/sendError"
|
||||
import { deleteCookie } from "cookies-next"
|
||||
import getTokenDB from "../../lib/backend/components/getTokenDB"
|
||||
|
@ -20,24 +19,15 @@ export default async function logout(
|
|||
return getTokenFromCookie(context, (refreshToken) => {
|
||||
checkTokenIsValid(context, refreshToken, (token) => {
|
||||
getTokenDB(context, token, (tokenDB) => {
|
||||
sendResponse(context, logoutResponse(tokenDB, req, res))
|
||||
// Set login cookie
|
||||
deleteCookie("token", { req, res })
|
||||
|
||||
sendResponse(context, {
|
||||
message: "User of Token " + tokenDB.id + " logged out.",
|
||||
body: { loggedOut: true },
|
||||
type: ["debug", "infoCyan"],
|
||||
})
|
||||
})
|
||||
})
|
||||
}).catch((err) => sendError(context, err))
|
||||
}
|
||||
|
||||
function logoutResponse<T>(
|
||||
tokenDB: Token,
|
||||
req: NextApiRequest,
|
||||
res: NextApiResponse<T>
|
||||
): Result<Data> {
|
||||
// Set login cookie
|
||||
deleteCookie("token", { req, res })
|
||||
|
||||
// Successfull response
|
||||
return {
|
||||
message: "User of Token " + tokenDB.id + " logged out.",
|
||||
body: { loggedOut: true },
|
||||
type: ["debug", "infoCyan"],
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue