【问题标题】:passport.js facebook authentication next not workingpassport.js facebook 身份验证下一个不起作用
【发布时间】:2018-02-17 12:27:31
【问题描述】:

我正在尝试实施的 passport.js 策略是针对 facebook 提供者的策略。我已经用教科书示例(来自https://github.com/passport/express-4.x-facebook-example)进行了测试,似乎从未调用过重定向。

重定向序列可以正常工作,除非当用户登录时,它会重定向到主页,即使在回调中明确放置了不同的 URL。

所以除了最后一个重定向之外一切正常,它应该以https://xx.com/testing 结尾,这永远不会发生。

nodejs 6,express 4+,passport 3.2

出了什么问题?

策略

passport.use(new FacebookStrategy({
  clientID: xx,
  clientSecret: 'xx',
  callbackURL: 'https://xx.com/auth/facebook/callback/',
  profileFields: ['id', 'email', 'name', 'displayName']
},
  function (accessToken, refreshToken, profile, done) {
      return done(null, profile)
  }
))

路线

router.get('/auth/facebook', passport.authenticate('facebook', {scope: ['public_profile', 'email']}))
router.get('/auth/facebook/callback',
  passport.authenticate('facebook', { failureRedirect: '/login' }),
  function(req, res) {
    // never gets called
    console.log('I don't get called!!!')
    res.redirect('/testing')
  })

【问题讨论】:

    标签: javascript node.js facebook passport.js


    【解决方案1】:

    /testing 转到successRedirect

    passport.authenticate('facebook', { 
        successRedirect: '/testing',
        failureRedirect: '/login'
    }));
    

    更新:使用passport.authorize

    router.get('/auth/facebook/callback',
        passport.authorize('facebook', { failureRedirect: '/login' }),
        function(req, res) {
           res.redirect('/testing')
        });
    

    【讨论】:

    • 按预期工作,但我想执行一些代码,然后重定向。
    猜你喜欢
    • 2013-06-29
    • 1970-01-01
    • 2012-04-14
    • 2015-06-26
    • 2015-11-01
    • 2016-09-24
    • 2015-08-21
    • 2023-02-05
    • 1970-01-01
    相关资源
    最近更新 更多