mirror of
https://github.com/linux-odyssey/linux-odyssey.git
synced 2026-11-06 03:20:13 +08:00
refactor: put passport to auth folder
This commit is contained in:
1 parent
41111f5036
commit
030dc95e24
8 files changed
+58
-76
No files matched your search
@@ -0,0 +1,13 @@
|
||||
import { Strategy as JwtStrategy, ExtractJwt } from 'passport-jwt'
|
||||
import config from '../config.js'
|
||||
|
||||
const jwtOptions = {
|
||||
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
|
||||
secretOrKey: config.jwtSecret,
|
||||
}
|
||||
|
||||
function verifyJwt(jwtPayload, done) {
|
||||
return done(null, jwtPayload)
|
||||
}
|
||||
|
||||
export default new JwtStrategy(jwtOptions, verifyJwt)
|
||||
@@ -0,0 +1,6 @@
|
||||
import passport from 'passport'
|
||||
import PasswordStrategy from './passwordStrategy.js'
|
||||
import JwtStrategy from './jwtStrategy.js'
|
||||
|
||||
passport.use(PasswordStrategy)
|
||||
passport.use(JwtStrategy)
|
||||
@@ -0,0 +1,22 @@
|
||||
import bcrypt from 'bcrypt'
|
||||
import LocalStrategy from 'passport-local'
|
||||
import User from '../models/user.js'
|
||||
|
||||
async function verifyPassword(username, password, done) {
|
||||
try {
|
||||
const user = await User.findOne({ username })
|
||||
if (!user) {
|
||||
return done(null, false, { message: 'Incorrect username.' })
|
||||
}
|
||||
|
||||
const isPasswordValid = await bcrypt.compare(password, user.hashedPassword)
|
||||
if (!isPasswordValid) {
|
||||
return done(null, false, { message: 'Incorrect username or password.' })
|
||||
}
|
||||
return done(null, user)
|
||||
} catch (err) {
|
||||
return done(err)
|
||||
}
|
||||
}
|
||||
|
||||
export default new LocalStrategy(verifyPassword)
|
||||
Reference in new issue
Block a user