Files
bch-dex/config/passport.js
T

57 lines
1.1 KiB
JavaScript
Raw Normal View History

2022-09-08 08:58:39 -07:00
// import passport from 'koa-passport';
import User from '../src/adapters/localdb/models/users.js'
import Strategy from 'passport-local'
2021-07-13 08:57:57 -07:00
async function passportCallback (email, password, done) {
try {
const user = await User.findOne({ email })
if (!user) {
return done(null, false)
}
try {
const isMatch = await user.validatePassword(password)
if (!isMatch) {
return done(null, false)
}
done(null, user)
} catch (err) {
done(err)
}
} catch (err) {
return done(err)
}
}
2022-09-08 08:58:39 -07:00
function applyPassportMods (passport) {
passport.serializeUser((user, done) => {
done(null, user.id)
})
passport.deserializeUser(async (id, done) => {
try {
const user = await User.findById(id, '-password')
done(null, user)
} catch (err) {
done(err)
}
})
passport.use(
'local',
new Strategy(
{
usernameField: 'email',
passwordField: 'password'
},
passportCallback
)
)
}
2021-07-13 08:57:57 -07:00
// For testing
2022-09-08 08:58:39 -07:00
// export default { passport, passportCallback };
export default applyPassportMods