因此,在我的 Rails 应用程序中使用 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
有任何想法吗?