【问题标题】:Passport.js authentication with node.js使用 node.js 进行 Passport.js 身份验证
【发布时间】:2023-04-05 16:43:01
【问题描述】:

我来自 laravel 背景,试图在我的sails.js 应用程序中实现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/,但是它的解释太差了

【问题讨论】:

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


    【解决方案1】:

    本教程已经很老了,因为它适用于sails 0.10,但它仍然有效。您正在使用本地护照策略。当你定义你的策略时,你有一个额外的参数。删除此“本地登录”参数。

    您目前拥有:

    passport.use('local-login',new LocalStrategy(function...
    

    将以上内容替换为:

    passport.use(new LocalStrategy(function...
    

    然后,当您调用身份验证时,指定 'local' 而不是 'local-login' 作为策略,所以您有:

    passport.authenticate(
      'local',
      function (req,res)...
    

    'local' 与本地护照一起使用。如果您我们使用的是 passport-http-bearer 策略,那么您会调用

    passport.authenticate('bearer', function...
    

    我通常将我的策略定义与会话序列化和查找用户的帮助程序一起放在 /config/bootstrap.js 中。然后我的控制器-->服务进行 passport.authenticate 调用。

    【讨论】:

      猜你喜欢
      • 2023-04-03
      • 2018-05-03
      • 1970-01-01
      • 2020-01-02
      • 2018-03-08
      • 2018-01-17
      • 2016-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多