android webview 页面关闭还保持登录态session问题

这两天和前端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

private void removeCookie(Context context) {
		CookieSyncManager.createInstance(context);  
		CookieManager cookieManager = CookieManager.getInstance(); 
		cookieManager.removeAllCookie();
		CookieSyncManager.getInstance().sync();  
	}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值