我在我的expressjs應用程序中使用everyauth來執行oauth身份驗證&授權與37signals網站。但是,這是一個普遍的oauth問題。everyauth總是觸發授權
當用戶第一次訪問我的應用程序時,他從37signals網站對我的應用程序進行身份驗證和授權。然後他被重定向到我的應用程序,在那裏我將用戶信息與訪問令牌一起保存在數據庫中。現在讓我們說,用戶註銷。如果他嘗試登錄,他將被迫再次授權我的應用程序。這個不對。我期望everyauth繞過授權步驟,因爲它已經完成了一次。這通常是通過在oauth提供者站點啓動oauth流時傳遞刷新令牌來完成的。但我不確定everyauth如何處理第二次登錄。有人可以對此有所瞭解嗎?
當用戶試圖通過將他重定向到http://localhost/auth/37signals
來啓動oauth流程。
這裏是我使用的代碼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');
我在這裏實現了Twitter的戰略和有同樣的問題也是如此。每次用戶在註銷後登錄時,都會顯示批准屏幕(授權應用程序名稱以使用您的帳戶)。
你確認瀏覽器設置爲接受cookie支持? – Sachin
是的,瀏覽器被設置爲接受cookie。所有的網站都很好。 – user1566788