6

我正在passportsails.

虽然 google 和 facebook 在我的应用程序中运行良好,但我在 twitter 身份验证方面遇到了困难!当点击“使用 twitter 登录”按钮时,会抛出一个错误,上面写着:Error: OAuthStrategy requires session support. Did you forget app.use(express.session(...))?

我在这里读到会话对于 twitter 身份验证工作是必要的。我确保我的应用程序已激活会话!

passport-twitter用一个简单的快速应用程序(没有帆)进行测试,以确保模块正常工作并且我的 twitter 凭据完好无损。

我假设风帆课程与快递课程不同?帆是否改变了会议的工作方式?关于如何解决这个问题的任何建议?


编辑:根据评论中的要求添加了更多信息:

帆版:0.9.13

用户控制器.js:

...
twitter: function(res, req) {
    passport.authenticate('twitter', {failureRedirect: '/login'}, function(err, user, info) {
      return console.log(err, user, info);
    })(req, res);
  }
...

配置/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);
    });
  }
));
...
4

3 回答 3

2

您是否尝试过使用sails 0.10 的sails-generate-auth?从我的角度来看,它让生活更轻松:https ://www.npmjs.org/package/sails-generate-auth

于 2014-05-17T15:27:49.973 回答
0

我建议您不要花时间自己集成它。现有的解决方案有很多。官方文档列出了几个选项:

  • sails-auth:基于 Passport 的身份验证扩展,包括基本身份验证
  • sails -permissions:sails.js 的权限和权利系统:支持使用 passport.js 进行用户身份验证、基于角色的权限、对象所有权和行级安全性。
  • sails-generate-auth:为您的 Sails 应用程序生成 Passport.js 身份验证层
于 2015-04-17T18:41:38.147 回答
0

查看一个如何进行 Twitter auth 的示例(google、facebook、github 也有): https ://github.com/stefanbuck/sails-social-auth-example

于 2014-10-27T10:10:53.217 回答