目前项目的做法是: app.js 中 通过 wx.login
+ code2Session
方法获取 UnionID,获取到就登录成功,获取不到 ,通过 wx.getUserInfo
(目前都是要做成 button的那个形式)方法获取,用户授权可以登录注册成功;
问题: 在未关注公众号的情况下,注册成功了, 第二次打开小程序的时候,仍然需要授权(因为默认是通过 code2Session获取的,此时获取不到unionID),这样就需要每次都授权登录,想问的问题是:有什么好的办法,解决这个每次都需要授权登录的问题(注:让每个用户都主动关注公众号不太现实)?谢谢大佬们
getUserInfo里拿encryptedData
后台去请求也能拿到unionid
授权后的以后都是静默授权 能达到你的效果
前提条件:未关注公众号的; 您的意思是:第一次授权通过后,我数据库存了unionid,第二次再来打开,就是静默授权了吗?
我们的逻辑是:
1、app.globalData.unionId = app.globalData.unionId || wx.getStorageSync('unionId')
2、没有则wx.getUserInfo直到获得授权;
3、云函数获得unionId,缓存
4、没有则wx.login,wx.getUserInfo,将3个参数传入后台获得unionId,缓存。
哦,你们是直接缓存到前台了,那要是删除小程序后或者清理了缓存,重新来登录时,是不是仍然需要授权?
这是肯定的。但是为什么会有删除小程序或者清理全部缓存这样的需求?什么样的场景?
这个倒是没有什么特定需求,只是想到这个地方了,
仔细阅读下 unionid机制与获取途径
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html
已经读的快会背了,我就是想问下,不关注公众号的情况下,授权过一次后,再进入 ,大家都是如何操作的