gpt4 book ai didi

http - 如何防止 Mobile Safari 缓存个性化主页?

转载 作者:可可西里 更新时间:2023-11-01 16:18:50 31 4
gpt4 key购买 nike

我有一个 Web 应用程序使用与 Sinatra 应用程序相同的 Twitter 身份验证代码 imonaplane .

主页显示“使用 Twitter 登录”或个性化内容。登录后,您将被重定向(通过 HTTP 302)到主页:

get '/session_auth' do
if params[:oauth_verifier]
access_token = twitter_client.authorize(
session[:request_token], session[:request_token_secret], oauth_verifier: params[:oauth_verifier])
if twitter_client.authorized?
user = db.load(User.to_id(twitter_client.info['screen_name'])) || User.new(login: twitter_client.info['screen_name'], twitter_access_token: access_token.token,
twitter_secret_token: access_token.secret)
db.save! user
session[:user_id] = user.id
end
end
redirect '/'
end

这在 Firefox 14.0.1 和 Safari 5.1.7 以及 iOS 模拟器中运行良好。

但是,似乎 iOS 5.1.1 上的 Mobile Safari 正在缓存通用主页。这给人的印象是您没有登录,因为它仍然显示“使用 Twitter 登录”。重新加载将显示个性化内容。

这是在 Heroku、Cedar 堆栈上运行。不使用 HTTP 缓存 header 。

这里有什么问题?我是否应该明确告诉浏览器不要缓存主页,可能使用 Cache-Control: private header ?

最佳答案

不同的浏览器承认 Cache-Control header 中的不同值。

据我所知(尽管我现在不能引用任何重要的来源)以确保在任何浏览器中都不会执行缓存,Cache-Control header 可以设置为 “max-age=0,私有(private),无存储,无缓存,必须重新验证”

关于http - 如何防止 Mobile Safari 缓存个性化主页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11790718/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com