android webview 页面关闭还保持登录态session问题
2018-01-10 14:52
826 查看
这两天和前端H5联调web页面,发现一个奇怪的问题,app退出登录,重新进入前端h5页面,登录态还在,杀死app、重启手机发现依然存在。肯定的判断是登录态被序列化,缓存到了本地,因为我们和前端登录态不是通过js传递,直接走的url连接。
根据我的思想,app前端只提供webview,以及和前端基本的交互规则,不涉及h5其他相关业务逻辑。
通过分析问题,初步断定本地有H5缓存设置标记,几经折腾分析,发现在应用安装目录中存在webviewCookiesChromium.db数据库
其中会缓存前端相关的回话id,h5拿这些id标记用户状态导致在app退出登录状态后,前端依然识别为登录状态。处理方法清楚相关缓存
CookieManager会将这个Cookie存入该应用程序/data/data/databases/目录下的webviewCookiesChromium.db数据库的cookies表中
打开网页,WebView从数据库中读取该cookie值,放到http请求的头部,传递到服务器、
客户端可以在注销登录时清除该应用程序用到的所有cookies
根据我的思想,app前端只提供webview,以及和前端基本的交互规则,不涉及h5其他相关业务逻辑。
通过分析问题,初步断定本地有H5缓存设置标记,几经折腾分析,发现在应用安装目录中存在webviewCookiesChromium.db数据库
其中会缓存前端相关的回话id,h5拿这些id标记用户状态导致在app退出登录状态后,前端依然识别为登录状态。处理方法清楚相关缓存
CookieManager会将这个Cookie存入该应用程序/data/data/databases/目录下的webviewCookiesChromium.db数据库的cookies表中
打开网页,WebView从数据库中读取该cookie值,放到http请求的头部,传递到服务器、
客户端可以在注销登录时清除该应用程序用到的所有cookies
private void removeCookie(Context context) { CookieSyncManager.createInstance(context); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.removeAllCookie(); CookieSyncManager.getInstance().sync(); }
相关文章推荐
- Android WebView 与OkhttpClient登录状态保持一致,建立SESSION会话
- Android用WebView获取sessionid保持登录状态
- Android WebView 与登录状态保持一致,建立SESSION会话
- Android WebView 保持登录问题
- 18、登录问题页面:WebViewActivity
- 屏蔽电信流氓广告造成的诡异的问题--Android WebView 长时间不能载入页面
- Android使用Webview显示页面以及点击跳转startActivity问题
- Android菜鸟学习笔记(WebView加载html页面,页面提交数据问题)
- android webview 页面,输入框软键盘遮挡问题(滑动页面)
- Android WebView页面重定向问题
- Android的HttpClient和WebView session不同的问题
- Android的HttpClient和WebView session不同的问题
- android使用webview登录,获取session传递到httpclient小例子
- android 中webview退出当前页面仍然继续播放的问题
- Android WebView加载页面的输入框被软键盘遮挡的问题
- Android Cookie共享到WebView避免再次登录(保持登录状态)
- android webview 点击页面输入框导致页面变大问题的解决
- javaweb登录页面验证码验证以及session中验证码值获取不同步的问题
- Android WebView加载服务端页面AJAX认证失败问题
- android,使用webView加载页面,界面空隙问题