我来自laravel背景,试图在我的sails.js app中实现passport.js authentication
文档很少,也很难理解
这是我的login.js
module.exports = {
/*
*Normal login
*/
login:function (req,res) {
//user input
console.log('email'+req.parm('email')+'password'+req.param('password'))
passport.authenticate(
'local-login',
function (req,res) {
}
}
passport.use('local-login',new LocalStrategy(function (username,password,done) {
if(username=='test')
return done(null,username);
else
return done(null,false,{message:'Invalid userinfo'})
}));
但passport.authenticate
从未解雇
从他们的文档中
app.post('/login',
passport.authenticate('local'),
function(req, res) {
// If this function gets called, authentication was successful.
// `req.user` contains the authenticated user.
res.redirect('/users/' + req.user.username);
});
这个If this function gets called, authentication was successful.
发现本教程http://iliketomatoes.com/implement-passport-js-authentication-with-sails-js-0-10-2/,但其解释很差
答案 0 :(得分:1)
本教程已经很老了,因为风帆0.10,但它仍然有效。您正在使用护照本地策略。定义策略时,您会获得额外的参数。删除本地登录'参数。
您目前有:
passport.use('local-login',new LocalStrategy(function...
将以上内容替换为:
passport.use(new LocalStrategy(function...
然后,当您致电身份验证时,请指定' local'不是本地登录'作为策略,所以你有:
passport.authenticate(
'local',
function (req,res)...
'本地'与护照本地一起去。如果您使用的是passport-http-bearer策略,那么您可以致电
passport.authenticate('bearer', function...
我通常将我的策略定义与/config/bootstrap.js一起放在会话序列化和帮助程序中以查找用户。然后我的控制器 - >服务进行了passport.authenticate调用。