带有护照推特的sails.js
Posted
技术标签:
【中文标题】带有护照推特的sails.js【英文标题】:sails.js with passport-twitter 【发布时间】:2014-05-01 17:19:55 【问题描述】:我正在将passport
与sails
集成。
虽然 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 中间件加载顺序有关。你能显示中间件配置吗?
【参考方案1】:
您是否尝试过使用sails 0.10 的sails-generate-auth?从我的角度来看,它让生活更轻松:https://www.npmjs.org/package/sails-generate-auth
【讨论】:
【参考方案2】:查看一个如何进行 Twitter auth 的示例(google、facebook、github 也有): https://github.com/stefanbuck/sails-social-auth-example
【讨论】:
【参考方案3】:我建议您不要花时间自己集成它。现有的解决方案有很多。 official documentation 列出了几个选项:
sails-auth:基于 Passport 的身份验证扩展,包括基本身份验证 sails-permissions:sails.js 的权限和权利系统:支持使用 passport.js 进行用户身份验证,基于角色 权限、对象所有权和行级安全性。 sails-generate-auth:为您的 Sails 应用生成 Passport.js 身份验证层
【讨论】:
以上是关于带有护照推特的sails.js的主要内容,如果未能解决你的问题,请参考以下文章