私はexpressjsアプリでeveryauthを使用して、37signalsサイトでoauth認証と承認を行っています。ただし、これは一般的なoauthの質問です。
ユーザーが初めて私のアプリにアクセスするとき、彼は37signalsサイトから私のアプリを認証および承認します。その後、彼は私のアプリにリダイレクトされ、そこでユーザー情報がアクセストークンとともにデータベースに保存されます。ここで、ユーザーがログアウトするとします。彼がログインしようとすると、彼は私のアプリを再度承認することを余儀なくされます。これは正しくないです。すでに一度行われているので、everyauthが認証ステップをバイパスすることを期待していました。これは通常、oauthプロバイダーサイトでoauthフローを開始するときに更新トークンを渡すことによって行われます。しかし、everyauthが2回目のログインをどのように処理しているかはわかりません。誰かがこれに光を当てることができますか?
ユーザーがにリダイレクトしてログインしようとすると、oauthフローを開始しますhttp://localhost/auth/37signals
。
これが私が使用しているeveryauthコードです。
everyauth['37signals']
.appId('e6e76726501abf1b5627fe854b384ef8d62d7a55')
.appSecret('7c6891f46cb19aaf1831785968630ed4a1b3c342')
.findOrCreateUser( function (sess, accessToken, accessSecret, _37signalsUser) {
console.log('inside findOrCreateUser');
console.log(util.inspect(_37signalsUser));
var promise = this.Promise();
users.findOrCreateUser(_37signalsUser, accessToken, accessSecret, promise);
return promise;
})
.redirectPath('/authenticated');
私はツイッター戦略を実装しましたが、ここでも同じ問題があります。ユーザーがログアウトした後にログインするたびに、承認画面(アカウントの使用をアプリ名に承認する)が表示されます。