使用node.js进行Passport.js身份验证

时间:2017-06-14 08:40:45

标签: javascript node.js sails.js passport.js

我来自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/,但其解释很差

1 个答案:

答案 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调用。