私のアプリケーションでは Google と Facebook は正常に機能していますが、Twitter の認証に苦労しています。「twitter でログイン」ボタンをクリックすると、次のようなエラーがスローされます。Error: OAuthStrategy requires session support. Did you forget app.use(express.session(...))?
ここで、Twitter 認証が機能するにはセッションが必要であると読みました。アプリでセッションが有効になっていることを確認しました。
passport-twitter
モジュールが機能していることと、Twitter の資格情報が損なわれていないことを確認するために、単純な Express アプリ (セイルなし) でテストします。
セイルセッションはエクスプレスセッションとは違うと思いますか? セイルはセッションの仕組みを変えていますか? これを解決する方法について何かアドバイスはありますか?
編集:コメントで要求されたように、さらに情報を追加しました:
帆のバージョン: 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);
}
...
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);
});
}
));
...