First prisma integration step

This commit is contained in:
aronmal 2023-02-04 00:29:06 +01:00
parent 6918729c45
commit 0507309ab1
Signed by: aronmal
GPG key ID: 816B7707426FC612
21 changed files with 645 additions and 1 deletions

View file

@ -0,0 +1,28 @@
import { Token } from "@prisma/client"
import jwt from "jsonwebtoken"
import jwtVerifyCatch from "../jwtVerifyCatch"
async function checkTokenIsValid<T>(payload: T & { token: string, tokenType: Token['type'] }) {
const { token, tokenType } = payload
// Verify the token and get the payload
let tokenData: string | jwt.JwtPayload
try {
tokenData = jwt.verify(token, process.env.ACCESS_TOKEN_SECRET as string)
} catch (err: any) {
// Deal with the problem in more detail
return Promise.reject(jwtVerifyCatch(tokenType, err))
}
// Making sure the token data is not a string (because it should be an object)
if (typeof tokenData === 'string') {
return Promise.reject({
message: tokenType + '-Token data was a string. Token: ' + token,
statusCode: 401,
solved: false
})
}
return { ...payload, tokenBody: token, tokenIsValid: true }
}
export default checkTokenIsValid