我看了社区里的问答,对于小程序登录会话有效期,用户和开发者都是无从得知的,只能通过 wx.checkSession 判断登录会话是否过期。但是,文档给的小程登录流程是在调用 wx.login 后将 code 传至后端处理,后端至少应当包含两步操作:1.调用 auth.code2Session 接口;2.持久化 1 得到的 session key。
我的问题是:后端处理 code 的流程可能比较长,不管 1 和 2 哪一步出了错,都会导致没有保存 session key 或已保存的 session key 是上一次的,最后变成 wx.checkSession 是通过的,需要使用 session key 解密的时候无法解密,这种情况出现的概率比较低,但如果真出现了,有什么合适的补救措施么?或者说整个登录流程必须保存绝对正确,不允许出错?
我现在的做法是用户授权之后将密文发送到后端处理,没解出明文,我就知道 session key 无效,前端重复上述登录流程并要求用户重新授权。这算是是个折中的办法,但是这样要求用户授权两次,我觉得很不友好,有什么其他方法么?