微信小程序部分机型用户无法登录(无法获取用户信息)

      已经上线一年的微信小程序,突然有部分用户反映无法登录。把同事的手机借了一遍,终于借到一个可以复现的手机,机型是Redmi K20 Pro。

      进入我的小程序首页,在操作界面之前,会请求3个接口,分别是登录接口、用户信息接口、首页数据接口。首先请求登录接口,登录接口返回成功之后,将返回的登录信息存入cookie中,再请求其他两个接口。如果没有cookie,会拦截其他接口,不发送请求。

      然而使用问题手机在开发者工具上进行真机调试时,只发送了登录接口。但登录接口返回200,数据并无异常。由此考虑到cookie的存储或读取有问题,导致其他接口被拦截,没有发送请求。

      首先看cookie的存储,在登录接口请求成功后,判断返回的头文件中是否有cookie,若有,则存到storage中,代码如下:

if (headers['Set-Cookie']){
    wx.setStorageSync('LoginCookie', headers['Set-Cookie'])
}

      首先来看一下,正常情况下返回的头文件信息,如下图: 

微信小程序部分机型用户无法登录(无法获取用户信息)_第1张图片

      正常情况下,cookie的存储没有问题。但使用问题手机调试时,发现输出的头信息中,key值均为小写,如下图:

微信小程序部分机型用户无法登录(无法获取用户信息)_第2张图片      如图,返回的cookie信息key是小写的“set-cookie”。 所以当使用headers['Set-Cookie']获取cookie时,是获取不到的,当然也就不能正常存储cookie。

      在此记录一下这个坑,在PC或WAP页面也可能会有这种情况发生,也给遇到此问题的小伙伴一个思路。      

你可能感兴趣的:(微信小程序)