From 41111f50368fd31d7b56cad2af820881c2209356 Mon Sep 17 00:00:00 2001 From: wancat Date: Mon, 11 Sep 2023 23:09:00 +0800 Subject: [PATCH] feat: add jwt verification --- server/src/api/routes/index.js | 22 ++++++++++++++++++++-- server/src/utils/auth.js | 2 +- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/server/src/api/routes/index.js b/server/src/api/routes/index.js index 759f85f..fdea3fc 100644 --- a/server/src/api/routes/index.js +++ b/server/src/api/routes/index.js @@ -1,9 +1,23 @@ import { Router } from 'express' +import passport from 'passport' +import { Strategy as JwtStrategy, ExtractJwt } from 'passport-jwt' import sessions from './sessions.js' import quests from './quests.js' import commands from './commands.js' -import { authMiddleware } from '../../middleware/auth.js' import authRouter from './auth.js' +import config from '../../config.js' + +const jwtOptions = { + jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), + secretOrKey: config.jwtSecret, + issuer: 'linuxodyssey.xyz', +} + +passport.use( + new JwtStrategy(jwtOptions, function verifyJwt(jwtPayload, done) { + return done(null, jwtPayload) + }) +) const router = Router() @@ -12,7 +26,11 @@ router.get('/', (req, res) => { }) router.use(authRouter) -router.use('/sessions', authMiddleware, sessions) +router.use( + '/sessions', + passport.authenticate('jwt', { session: false }), + sessions +) router.use('/quests', quests) router.use('/commands', commands) diff --git a/server/src/utils/auth.js b/server/src/utils/auth.js index 6d291cf..9704e6c 100644 --- a/server/src/utils/auth.js +++ b/server/src/utils/auth.js @@ -32,7 +32,7 @@ export function genUserJWT(user) { jwt.sign( { _id: user.id, username: user.username, email: user.email }, config.jwtSecret, - { expiresIn: config.expiry }, + { expiresIn: config.expiry, issuer: 'linuxodyssey.xyz' }, (err, token) => { if (err) { reject(err)