mirror of
https://github.com/linux-odyssey/linux-odyssey.git
synced 2026-11-08 19:40:11 +08:00
feat: add jwt verification
This commit is contained in:
1 parent
bcdd04715d
commit
41111f5036
2 files changed
+21
-3
No files matched your search
@@ -1,9 +1,23 @@
|
|||||||
import { Router } from 'express'
|
import { Router } from 'express'
|
||||||
|
import passport from 'passport'
|
||||||
|
import { Strategy as JwtStrategy, ExtractJwt } from 'passport-jwt'
|
||||||
import sessions from './sessions.js'
|
import sessions from './sessions.js'
|
||||||
import quests from './quests.js'
|
import quests from './quests.js'
|
||||||
import commands from './commands.js'
|
import commands from './commands.js'
|
||||||
import { authMiddleware } from '../../middleware/auth.js'
|
|
||||||
import authRouter from './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()
|
const router = Router()
|
||||||
|
|
||||||
@@ -12,7 +26,11 @@ router.get('/', (req, res) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
router.use(authRouter)
|
router.use(authRouter)
|
||||||
router.use('/sessions', authMiddleware, sessions)
|
router.use(
|
||||||
|
'/sessions',
|
||||||
|
passport.authenticate('jwt', { session: false }),
|
||||||
|
sessions
|
||||||
|
)
|
||||||
router.use('/quests', quests)
|
router.use('/quests', quests)
|
||||||
router.use('/commands', commands)
|
router.use('/commands', commands)
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ export function genUserJWT(user) {
|
|||||||
jwt.sign(
|
jwt.sign(
|
||||||
{ _id: user.id, username: user.username, email: user.email },
|
{ _id: user.id, username: user.username, email: user.email },
|
||||||
config.jwtSecret,
|
config.jwtSecret,
|
||||||
{ expiresIn: config.expiry },
|
{ expiresIn: config.expiry, issuer: 'linuxodyssey.xyz' },
|
||||||
(err, token) => {
|
(err, token) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
reject(err)
|
reject(err)
|
||||||
|
|||||||
Reference in new issue
Block a user