登录这块我基本了解,但是目前小程序的登陆态的方案介绍的真不清楚,原生App登陆态过期可以跳到登录页解决登陆态过期问题,web网页可以直接重定向到登录页面解决这个问题。唯独小程序目前不太清楚。下面我具体来说。
第一点,做静默登录,是不需要跳转到授权页面的,如果跳到授权页面只是为了登录,那小程序的静默登录也就白做了。
第二点,如果自定义登陆态的过期时间小于微信端的 session_key的过期时间,那就不需要调用 wx.checkSession ,根据后台返回状态码来判断有没有过期,过期则重新登录,但这里有一个问题,就是我可能同时调用多个API,这样的的话可能会重复登录多次。
第三点,如果自定义登陆态的过期时间大于微信端的 session_key 的过期时间,自定义登陆态必须的,但自定义登陆态的过期时间就白做了,因为只需要 wx.checkSession 就可以,而且 session_key的过期时间还是动态的。
第四点,如果我在小程序端存储过期时间的方式来做判断登录态是否过期,虽然可以,但感觉很不安全。
第五点,如果自定义登陆态不设置过期时间,只是用来识别用户,然后使用 wx.checkSession 来判断有没有过期,而且 wx.checkSession 判断的登陆态过期时间还有个好处就是它是动态的,如果本次小程序生命周期判断为true,则本次生命周期都不会过期。这种看起来很完美,但不知道会不会不安全?
ok,希望各位开发者和官方来说道说道。。。给点建议。。。
之前有两篇关于登录和用户信息的小故事,建议看下
https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=1383966312&docid=000e2aac1ac838e29aa6c4eaf56409
https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=1383966312&docid=000c2424654c40bd9c960e71e5b009
官方,你没明白我说的话,我说的主要问题是自定义登陆态的时效性的策略应该如果制定才最好,不是授权获取用户信息,授权获取用户信息这点没有什么问题,很ok。希望再重新阅读我的问题!感谢!
我想知道在小程序运行在后台但是小程序没有被销毁(查资料得知iOS运行在后台5分钟会被销毁,安卓随缘可能很久也可能几分钟)那么只要没被销毁登录态就一定有效么,因为判断登录态一般放在APP onlaunch里面 如果没被销毁小程序再进入是不会走onlaunch的 那么也就检测不到登录态失效了?
楼主,我现在也遇到这个问题了,有什么比较好的解决方法吗
请问这个问题是怎么解决的?
我也是疑惑这点,感觉自定义登录态过期时间只要依据wx.checkSession来检查就好了。每次onLaunch的时候首先调用wx.checkSession,过期了重新wx.login,也就生成新的自定义登录态了。
那么问题来了,会不会出现,wx.checkSession返回成功,但是Storage里没有自定义登录态的情况啊?
首先会有你说的情况,那就是在工具中删除 session。再者按照你的方式, session 是否过期的判断需要两个情况的综合,先判断有没有 session 再 wx.checkSession 判断是否过期,就ok了。
自定义登陆态是必须的,它是用来标识用户的,问题在于登陆态的过期时间的管理