我正在看一些视频课程,他们向我展示了如何使用谷歌OAuth的Passport,最后他们就像是“欢迎,现在你可以使用所有的策略了!玩得开心!”
所以我试着像这样实现passport-local:
// passport.js
// ...
passport.use(
new LocalStrategy((username, password, done) => {
User
.findOne({ username, password })
.then(userFromDB => {
if (userFromDB) {
done(null, userFromDB) // No errs so return the user from db
} else {
new User({
username,
password,
})
.save() // Add user to our db
.then(userFromDB => done(null, userFromDB)) // return user from db
}
})
})
)
// ...
// routes.js
// ...
app.post(`/auth/local`,
passport.authenticate(`local`, {
failureRedirect: `/api/v1/current_user`,
}),
(req, res) => res.send(`It worked`)
)
// ...我的问题是new LocalStrategy((username, password, done) ...如何获得username和password
这是一个带有Mongo的Express服务器。
发布于 2017-12-12 20:55:38
app.post('/login',
passport.authenticate('local', { failureRedirect: '/login' }),
function(req, res) {
res.redirect('/');
});在这里
当您点击路由
/login然后passport.authenticate('local'自动调用函数passport.use(new LocalStrategy(.in从前端登录路由您需要发送用户名和密码
passport.use(
new LocalStrategy((username, password, done) => {
User
.findOne({ username, password })
.then(userFromDB => {
if (userFromDB) {
done(null, userFromDB) // No errs so return the user from db
} else {
new User({
username,
password,
})
.save() // Add user to our db
.then(userFromDB => done(null, userFromDB)) // return user from db
}
})
})
)https://stackoverflow.com/questions/47772532
复制相似问题