小程序登录态过期的问题
发布于 5 年前 作者 jiewen 2607 次浏览 来自 问答

登录这块我基本了解,但是目前小程序的登陆态的方案介绍的真不清楚,原生App登陆态过期可以跳到登录页解决登陆态过期问题,web网页可以直接重定向到登录页面解决这个问题。唯独小程序目前不太清楚。下面我具体来说。


第一点,做静默登录,是不需要跳转到授权页面的,如果跳到授权页面只是为了登录,那小程序的静默登录也就白做了。


第二点,如果自定义登陆态的过期时间小于微信端的 session_key的过期时间,那就不需要调用 wx.checkSession ,根据后台返回状态码来判断有没有过期,过期则重新登录,但这里有一个问题,就是我可能同时调用多个API,这样的的话可能会重复登录多次。


第三点,如果自定义登陆态的过期时间大于微信端的 session_key 的过期时间,自定义登陆态必须的,但自定义登陆态的过期时间就白做了,因为只需要 wx.checkSession 就可以,而且 session_key的过期时间还是动态的。


第四点,如果我在小程序端存储过期时间的方式来做判断登录态是否过期,虽然可以,但感觉很不安全。


第五点,如果自定义登陆态不设置过期时间,只是用来识别用户,然后使用 wx.checkSession 来判断有没有过期,而且 wx.checkSession 判断的登陆态过期时间还有个好处就是它是动态的,如果本次小程序生命周期判断为true,则本次生命周期都不会过期。这种看起来很完美,但不知道会不会不安全?


ok,希望各位开发者和官方来说道说道。。。给点建议。。。

4 回复

请问这个问题是怎么解决的?

我也是疑惑这点,感觉自定义登录态过期时间只要依据wx.checkSession来检查就好了。每次onLaunch的时候首先调用wx.checkSession,过期了重新wx.login,也就生成新的自定义登录态了。

那么问题来了,会不会出现,wx.checkSession返回成功,但是Storage里没有自定义登录态的情况啊?

自定义登陆态是必须的,它是用来标识用户的,问题在于登陆态的过期时间的管理

回到顶部