android WebView的Cookie跨域问题

问题表述

  • 现在的现象是 用户进入a.xxx.com域名之后,这个域名下会发起一个请求,这个请求是走到网关接口中请求数据,此时,网关接口没有获取到session,认为未登录,所以返回未登录状态码,xxx接受到状态码跳转到passeport登录,但是进入passeport登录页面之后,passeport获取到了session,认为已登录,又跳转回了xxx
  • 所以问题就在于,明明已经登录,但是网关接口没有获取到session
  • 我们找了网关负责人来看,他看了抓包信息,他说请求里面没有携带上session,这个session是通过请求时候定的一个值传过去的
  • 前端发送请求的时候会打开 一个值,有了这个值就会可以不同域名访问session
代码片段

问题原因

其实这个问题发生是由于虽然h5允许跨域了可以共享cookie,但是客户端没有允许跨域,获取不到cookie,所以出现上面的问题。

解决方案

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
      cookieManager.setAcceptThirdPartyCookies(mWvCustom, true);//TODO 跨域cookie读取
}

简述:
LOLLIPOP(21)及以上,默认不允许跨域访问cookie信息,因此设置为true即可。

参考文章:https://blog.csdn.net/denglusha737/article/details/83684488

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容