【发布时间】:2014-05-01 17:19:55
【问题描述】:
虽然 google 和 facebook 在我的应用程序中运行良好,但我在 twitter 身份验证方面遇到了困难!当点击“用 twitter 登录”按钮时,会抛出一个错误,上面写着:Error: OAuthStrategy requires session support. Did you forget app.use(express.session(...))?
我读到here 说会话对于 twitter 身份验证工作是必要的。我确保我的应用已激活会话!
我测试passport-twitter 与一个简单的快递应用程序(没有帆),以确保模块工作和我的推特凭据完好无损。
我假设 Sails 会话与 Express 会话不同?帆是否改变了会议的工作方式?有关如何解决此问题的任何建议?
编辑:根据 cmets 的要求添加了更多信息:
帆版:0.9.13
UserController.js:
...
twitter: function(res, req) {
passport.authenticate('twitter', {failureRedirect: '/login'}, function(err, user, info) {
return console.log(err, user, info);
})(req, res);
}
...
config/passport.js:
...
passport.use(new TwitterStrategy({
consumerKey: '**************',
consumerSecret: '********************',
callbackURL: "http://127.0.0.1:1337/auth/twitter/callback"
},
function(token, tokenSecret, profile, done){
process.nextTick(function() {
console.log(profile);
});
}
));
...
【问题讨论】:
-
你从哪里给
authenticate打电话? -
来自用户控制器
-
你能发布一个sn-p吗?另外,哪个 Sails 版本?
-
添加了更多信息.. 感谢您的帮助
-
嗯,一切看起来都不错,但我感觉这与 Express 中间件加载顺序有关。你能显示中间件配置吗?
标签: node.js express sails.js passport.js passport-twitter