Adapt to recent changes
This commit is contained in:
parent
d825a0347f
commit
db79dc43c9
10 changed files with 62 additions and 45 deletions
|
@ -24,7 +24,7 @@ async function checkTokenIsValid<T>(
|
|||
})
|
||||
}
|
||||
|
||||
return { ...payload, tokenBody: token, tokenIsValid: true }
|
||||
return { ...payload, tokenBody: tokenData, tokenIsValid: true }
|
||||
}
|
||||
|
||||
export default checkTokenIsValid
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
import { Player, Token } from "@prisma/client"
|
||||
import jwt from "jsonwebtoken"
|
||||
import { v4 as uuidv4 } from "uuid"
|
||||
import prisma from "../../prisma"
|
||||
|
||||
const tokenLifetime = {
|
||||
|
@ -13,19 +12,11 @@ export default async function createTokenDB<T>(
|
|||
) {
|
||||
const { player, newTokenType } = payload
|
||||
|
||||
// Sign a new access token
|
||||
const newToken = jwt.sign(
|
||||
{ uuid: uuidv4(), user: player.id },
|
||||
process.env.ACCESS_TOKEN_SECRET as string,
|
||||
{ expiresIn: tokenLifetime[newTokenType] }
|
||||
)
|
||||
|
||||
// Save token to DB
|
||||
// Create token entry in DB
|
||||
const newTokenDB = await prisma.token.create({
|
||||
data: {
|
||||
token: newToken,
|
||||
type: newTokenType,
|
||||
expires: new Date(Date.now() + tokenLifetime[newTokenType] + "000"),
|
||||
// expires: new Date(Date.now() + tokenLifetime[newTokenType] + "000"),
|
||||
owner: {
|
||||
connect: {
|
||||
id: player.id,
|
||||
|
@ -34,6 +25,13 @@ export default async function createTokenDB<T>(
|
|||
},
|
||||
})
|
||||
|
||||
// Sign a new access token
|
||||
const newToken = jwt.sign(
|
||||
{ id: newTokenDB.id },
|
||||
process.env.ACCESS_TOKEN_SECRET as string,
|
||||
{ expiresIn: tokenLifetime[newTokenType] }
|
||||
)
|
||||
|
||||
return {
|
||||
...payload,
|
||||
newToken,
|
||||
|
|
|
@ -13,7 +13,7 @@ export default async function getPlayerByIdDB<T>(
|
|||
})
|
||||
if (!player) {
|
||||
return Promise.reject({
|
||||
message: "Player not found in DB!",
|
||||
message: "Player ID not found in DB!",
|
||||
statusCode: 401,
|
||||
solved: false,
|
||||
})
|
||||
|
|
|
@ -6,12 +6,12 @@ export default async function getPlayerByNameDB<T>(
|
|||
const { username } = payload
|
||||
// Find Player in DB if it still exists (just to make sure)
|
||||
const player = await Promise.any([
|
||||
prisma.player.findUnique({
|
||||
prisma.player.findUniqueOrThrow({
|
||||
where: {
|
||||
username: username,
|
||||
},
|
||||
}),
|
||||
prisma.player.findUnique({
|
||||
prisma.player.findUniqueOrThrow({
|
||||
where: {
|
||||
email: username,
|
||||
},
|
||||
|
@ -19,7 +19,7 @@ export default async function getPlayerByNameDB<T>(
|
|||
])
|
||||
if (!player) {
|
||||
return Promise.reject({
|
||||
message: "Player not found in DB!",
|
||||
message: "Player name not found in DB!",
|
||||
statusCode: 401,
|
||||
solved: false,
|
||||
})
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
import { NextApiRequest, NextApiResponse } from "next"
|
||||
import prisma from "../../prisma"
|
||||
import jwt from "jsonwebtoken"
|
||||
|
||||
async function getTokenDB<T>(
|
||||
payload: T & {
|
||||
tokenBody: string
|
||||
tokenBody: jwt.JwtPayload
|
||||
tokenIsValid: boolean
|
||||
req: NextApiRequest
|
||||
res: NextApiResponse<any>
|
||||
|
@ -14,7 +15,7 @@ async function getTokenDB<T>(
|
|||
// Find refresh token in DB
|
||||
const tokenDB = await prisma.token.findUnique({
|
||||
where: {
|
||||
token: tokenBody,
|
||||
id: tokenBody.id,
|
||||
},
|
||||
})
|
||||
if (!tokenDB) {
|
||||
|
@ -36,7 +37,7 @@ async function getTokenDB<T>(
|
|||
|
||||
await prisma.token.update({
|
||||
where: {
|
||||
token: tokenBody,
|
||||
id: tokenBody.id,
|
||||
},
|
||||
data: {
|
||||
used: true,
|
||||
|
|
|
@ -9,4 +9,5 @@ export default function sendError<T>(
|
|||
// If something went wrong, let the client know with status 500
|
||||
res.status(err.statusCode ?? 500).end()
|
||||
logging(err.message, [err.type ?? (err.solved ? "debug" : "error")], req)
|
||||
if (err.name) console.log(err)
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@ async function logStartup() {
|
|||
async function logging(
|
||||
message: string,
|
||||
types: Logging[],
|
||||
req?: NextApiRequest | IncomingMessage
|
||||
req?: NextApiRequest
|
||||
) {
|
||||
if (!started) await logStartup()
|
||||
const messages = { console: message, file: message }
|
||||
|
@ -49,8 +49,11 @@ async function logging(
|
|||
if (req) {
|
||||
const forwardedFor: any = req.headers["x-forwarded-for"]
|
||||
const ip = (forwardedFor || "127.0.0.1, 192.168.178.1").split(",")
|
||||
messages.console = ip[0].yellow + " - " + messages.console
|
||||
messages.file = ip[0] + " - " + messages.file
|
||||
const route = req.url
|
||||
messages.console = [ip[0].yellow, route?.green, messages.console].join(
|
||||
" - "
|
||||
)
|
||||
messages.file = [ip[0], route, messages.file].join(" - ")
|
||||
}
|
||||
await fs.promises.appendFile("log/log.txt", messages.file + "\n")
|
||||
console.log(messages.console)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue