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

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

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

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

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

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

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

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

      如图,返回的cookie信息key是小写的“set-cookie”。 所以当使用headers['Set-Cookie']获取cookie时,是获取不到的,当然也就不能正常存储cookie。

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值