微信小程序登录态问题
by addy 原创文章,欢迎转载,但希望全文转载,注明本文地址。
先看遇到的问题,在PC的微信开发工具上,调试开发我们的小程序。然后用手机扫描在手机上预览,这时候发现后台数据并不能成功返回。
也就是说在PC切换手机的时候,登录态是失效的。
简化说明下:
- 1、wx.login得到code
- 2、我们自己后台拿code调用微信后台接口,得到session_key
- 3、我们自己后台加密session_key,得到3rd_session_key
- 4、前端存储3rd_session_key,每次请求带上它。
有几点注意:
- 1、wx.login,返回的code,有效期五分钟。
- 2、wx.login,每调用一次会导致前面的失效。
- 3、wx.login,用过之后就失效了。
- 4、我们的3rd_session_key是唯一性。
session会话的唯一性是指什么呢?就是用户只能在一个终端与服务器保持会话。就像一个微信号,只能在一个手机上登录。
所以就出现了刚开始的问题。当从开发环境PC电脑,切换到手机预览的时候,登录态是失效了。这个时候怎么办?
当然是保证后登录的有效。而且wx.login返回的 code也不能用了。
所以当调用后台的CGI接口的时候,返回了登录态失效的错误码:一切从头开始,重复我前面讲的换票据的流程。
这样才能保证切换终端的时候,保证能够正常。
说句题外话,没有cookie的小程序,暴露出一个缺点,要得到后台的数据时间成本也很大。
wx.login —— 换取session_key —— 换取3rd_session_key —— 业务CGI请求——渲染数据
这个五个步骤都是有网络耗时的,感觉上还是挺费时间。具体没统计,可以下回分析。
以上。
本文为原创文章,可能会经常更新知识点以及修正一些错误,因此转载请保留原出处,方便溯源,谢谢合作
个人知乎,欢迎关注:https://www.zhihu.com/people/iamaddy
欢迎关注公众号【入门游戏开发】
近期评论