【问题标题】:sails.js with passport-twitter带有护照推特的sails.js
【发布时间】: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 中间件加载顺序有关。你能显示中间件配置吗?

标签: node.js express sails.js passport.js passport-twitter


【解决方案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 身份验证层

      【讨论】:

        猜你喜欢
        • 2014-12-23
        • 1970-01-01
        • 2015-07-15
        • 1970-01-01
        • 2016-10-19
        • 2014-10-09
        • 2015-07-03
        • 2015-03-20
        • 2014-12-09
        相关资源
        最近更新 更多