【问题标题】:Passport-local 304 redirect error express appPassport-local 304 重定向错误快递应用
【发布时间】:2016-11-15 08:43:49
【问题描述】:

我正在抛出一个重定向错误,我似乎无法弄清楚为什么,我用细齿梳浏览了文档,似乎没有任何问题。在提交我的表单(登录和注册)时,我会收到 304。

登录

router.get('/login', function(req, res, next) {
  res.render('login', {
    user: req.user
  })
})

模板

extends layout

block content
  .container
    h1 Login 
    br
    form(method="post", action="/login", class="form")
      .form-group
        input.form-control(type='text', name='email', required='required')
      .form-group
        input.form-control(type='password', name='password', required='required')
      button.btn.btn-default(type='submit') submit
      a(href='/')
        button.btn.btn-default(type='button') Go back

护照配置

// Configure passport
passport.use(new LocalStrategy({
    usernameField: 'email',
    passwordField: 'password'
  },
  function(username, password, done) {
    UserSchema.authenticate()
  }
));

//passport.use(new LocalStrategy(UserSchema.authenticate()))
passport.serializeUser(UserSchema.serializeUser())
passport.deserializeUser(UserSchema.deserializeUser())

我哪里出错了?

【问题讨论】:

    标签: node.js authentication express passport.js


    【解决方案1】:

    我相信passport.use() 函数中的回调函数需要以如下方式返回(这取自我的一个项目的工作实现)。可以看到传入函数的done()回调在认证不成功时被调用为done(null, false),在认证成功时被调用为done(null, user)(我在这里传递用户变量以供其他地方使用)。

    function(username, password, done) {
      //check if user is authenticated, in my case the user variable
      if (err) { return done(err); }
      if (!user) { return done(null, false); }
      if (!user.authenticate(password)) { return done(null, false); }
      if (!user.active) { return done(null, false); }
      return done(null, user);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-01
      • 1970-01-01
      • 2023-03-30
      • 2016-04-15
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多