diff --git a/src/hooks/verifyToken.hook.ts b/src/hooks/verifyToken.hook.ts index 56a1b74..59a5394 100644 --- a/src/hooks/verifyToken.hook.ts +++ b/src/hooks/verifyToken.hook.ts @@ -3,6 +3,22 @@ import { INVALID_TOKEN, MUST_LOGIN_FIRST } from '@constants'; import { FastifyReply, FastifyRequest } from 'fastify'; import jwt from 'jsonwebtoken'; +export async function verifyTokenOrPass(req: FastifyRequest) { + const token = req.cookies.token; + + if (!token) return; + + try { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const decodedPayload: any = jwt.verify(token, envs.JWT_SECRET); + req.userId = decodedPayload['userId']; + return; + } catch (err) { + req.log.info(err); + return; + } +} + export async function verifyToken(req: FastifyRequest, res: FastifyReply) { const token = req.cookies.token; diff --git a/src/routes/apis/defaultModel.plugin.ts b/src/routes/apis/defaultModel.plugin.ts index 3beda26..62aced2 100644 --- a/src/routes/apis/defaultModel.plugin.ts +++ b/src/routes/apis/defaultModel.plugin.ts @@ -1,7 +1,7 @@ import { UploadDefaultModelInputDto, UpdateDefaultModelInputDto, DefaultModelQueryStringDto } from '@dtos/in'; import { DefaultModelListResultDto, DefaultModelResultDto, ToggleLikeResultDto } from '@dtos/out'; import { defaultModelHandler } from '@handlers'; -import { verifyToken, verifyUserRole } from '@hooks'; +import { verifyToken, verifyTokenOrPass, verifyUserRole } from '@hooks'; import { UserRole } from '@prisma/client'; import { Type } from '@sinclair/typebox'; import { createRoutes } from '@utils'; @@ -10,7 +10,7 @@ export const defaultModelPlugin = createRoutes('Default Model', [ { method: 'GET', url: '', - onRequest: [], + onRequest: [verifyTokenOrPass], schema: { summary: 'Get all default models', querystring: DefaultModelQueryStringDto,