android WebView的Cookie跨域问题

问题表述

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

问题原因

其实这个问题发生是由于虽然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

你可能感兴趣的:(android WebView的Cookie跨域问题)