带有护照推特的sails.js

Posted

技术标签:

【中文标题】带有护照推特的sails.js【英文标题】:sails.js with passport-twitter 【发布时间】:2014-05-01 17:19:55 【问题描述】:

我正在将passportsails 集成。

虽然 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的主要内容,如果未能解决你的问题,请参考以下文章

我没有收到来自推特的推文

推特的追随者(tweepy)

javascript 默认护照 - 推特

Sails.js 中的 JWT 和护照

有钱任性,马斯克变推特最大股东!然而,特斯拉发布重大消息…

有钱任性,马斯克变推特最大股东!然而,特斯拉发布重大消息…