gpt4 book ai didi

node.js - Express 4.0 和 Passport - 重定向到 Facebook 不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 02:47:51 24 4
gpt4 key购买 nike

我正在尝试使用 Express 4.0 和 Passport 进行简单的 Facebook 登录。

    app.route('/auth/facebook')
.get(function(req, res, next){
console.log('Authentication start');

var aut = passport.authenticate('facebook',
{
scope: ['read_stream',
'publish_actions']
}, function(err) {

});
})

此路由应该将浏览器重定向到 Facebook 页面身份验证,但什么也没发生,并且请求超时。我试图了解 Express 中发生了什么变化,因为在之前的版本中一切正常。

最佳答案

1) 您可能使用 passport.session,它依赖于 express.session 的加载。如果是这样,你的某个地方就会有一个看起来像这样的 block :

app.configure(function() {
app.use(express.static('public'));
app.use(express.cookieParser());
app.use(express.bodyParser());
app.use(express.session({ secret: 'keyboard cat' }));
app.use(passport.initialize());
app.use(passport.session());
app.use(app.router);
});

2) express.sessionno longer part Express 核心应用程序的。要使用 Express v4 获取 session ,您可以使用"new"express-session保持事物相对连续。

在 v4 应用中,您需要引入新的 express-session 模块,然后使用它来代替原始的 express.session。修改后的代码看起来有点像这样:

var express = require('express')
var session = require('express-session')

var app = express()

app.use(session({secret: 'keyboard cat'}))

express-session 页面(上面链接)包含有关如何使用该模块的其他信息。

底线:如果您在使用 Express v3 编写的示例的同时构建 Express v4 应用,您需要仔细阅读有关 Express 版本之间的差异以及如何升级的文档。大多数示例/文档都假设 Express v3,因此您需要真正理解这些:

关于node.js - Express 4.0 和 Passport - 重定向到 Facebook 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23171249/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com