浏览器缓存AJAX头
我在PhoneGap中开发了一个应用程序。我使用的restapi()使用httpbasic身份验证来验证每个请求。标题看起来像:浏览器缓存AJAX头,ajax,caching,cordova,http-headers,Ajax,Caching,Cordova,Http Headers,我在PhoneGap中开发了一个应用程序。我使用的restapi()使用httpbasic身份验证来验证每个请求。标题看起来像: Authorization: Basic Base64(username:password) 其中Base64()表示将参数转换为Base64编码的过程。以这种方式执行请求没有问题。一旦用户成功登录(由200ok消息指示),我将保存编码的令牌并将其用于所有后续请求。为了实现注销,我将存储的令牌设置为空字符串: api.token = ""; 然后显示登录页面。但是
Authorization: Basic Base64(username:password)
其中Base64()
表示将参数转换为Base64编码的过程。以这种方式执行请求没有问题。一旦用户成功登录(由200ok
消息指示),我将保存编码的令牌并将其用于所有后续请求。为了实现注销,我将存储的令牌设置为空字符串:
api.token = "";
然后显示登录页面。但是,此时,无论输入什么密码,API都会返回一个200OK
响应,就像请求来自最初登录的用户一样
除了在应用程序和服务器之间插入代理之外,我已经完成了所有工作,以验证是否设置了正确的请求头(例如,密码无效),包括在使用令牌之前记录该令牌,以及使用Safari Web Inspector和Google Developer工具进行检查。在每个实例中,都会正确地报告令牌包含我输入的密码,而不是应该已删除的原始密码
为了执行“记住我”功能,我将令牌保存在本地存储器中。如果我杀死应用程序并使用Xcode(用于iOS)重建它,然后尝试重新打开应用程序(保存了无效令牌),我会收到各种403错误,表明它正在使用我输入的令牌和无效密码。所以过程是这样的
你知道怎么回事吗?结果不是浏览器缓存了标题(这一点一开始就没有多大意义)。Jive发送了一个安全cookie并使用它,完全忽略了
授权
头