因此,在我的Rails應用程序中使用Omniauth設置OAuth時,我遇到了以下意外行爲。強制Omniauth/OAuth忽略瀏覽器緩存並重新進行驗證?
當用戶先前已向OAuth提供程序(例如Facebook)進行身份驗證時,憑據會存儲在瀏覽器的某處。如果其他用戶嘗試在同一瀏覽器中發出OAuth請求,則會使用第一位用戶存儲的數據!
有沒有辦法強制OAuth請求不使用存儲的憑證,並讓用戶每次授權應用程序?
我已經嘗試使用下面的代碼將no-cache
標題添加到控制器,但它當然沒有做任何事情,因爲請求是提供者OAuth端點,而不是我的應用程序的內部任何位置。
before_filter :set_cache_buster
def set_cache_buster
p "CACHE BBBBUSTED!"
response.headers["Cache-Control"] = "no-cache, no-store, max-age=0,must-revalidate"
response.headers["Pragma"] = "no-cache"
response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
request.headers["Cache-Control"] = "no-cache, no-store, max-age=0,must-revalidate"
request.headers["Pragma"] = "no-cache"
request.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
end
任何想法?
我有同樣的問題,但與google_oauth2。實際上,我希望讓用戶決定是否要重置自動登錄。你是如何解決這個問題的? – 2013-04-11 21:24:59
@FernandoFabreti這些是我似乎工作的google_oauth2 Omniauth設置:''::scope =>「userinfo.email,userinfo.profile,plus.me」, :approval_prompt =>「force」, :access_type =>「離線「''' – thoughtpunch 2013-04-12 16:20:27