官方发通知说,wx.getUserInfo在4月30日后,在体验版和测试版中,将不能弹出授权提示框,且该功能会被移除.
我想知道 我用button type为getUserInfo验证组件,之后再用wx.getUserInfo获取用户信息可以吗?
为什么非要用wx.getUserInfo,因为我要在button按钮点击后,wx.login一下,获取code,之后获取sessionKey,之后去解密加密的用户信息获取Unionid,请官方回答一下1。
框架类型 | 问题类型 | API/组件名称 | 终端类型 | 操作系统 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|---|
小程序 | Bug | button | 客户端 | 6.6.6 | 1.9.90 |
@changxue_xu
只有拿到了unionID(当然这是对需要多小程序间关联而言的, 普通的小程序openid就够了), 我才能拿到用户的登录状态, 就是说,后台那边的登录接口设计肯定是要有unionID作为参数来传递的, 所以:
对于开发者而言, 用户的登录与否是通过unionID衔接的.
对于用户而言, 登录与否就是getuserinfo <button>组件的显示与隐藏(简言之就是用户的userinfo授权与否).
可以使用globalData来存储unionID, 如果用户突然关闭授权,那么unionID置空, getuserinfo <button>组件显示,对用户而言未登录,对开发者而言因为unionID置空了,所以也是未登录状态(接口请求拿不到基于空的unionID的相关数据).
我可以这么理解么?
@Jason Z. 对你这种情况关闭授权的时候就得清除登录状态了,退出登录返回到登录页面了。或者这个地方给用户个提示拒绝用户关闭
@"changxue_xu" ''登录过的用户就不在显示登录页了,直接显示首页了。''
1.对于我前台而言, 登没登过的判断是要把unionID作为参数传给后台做网络请求判断得到(我通过<button>组件 拿到userinfo进而解密获取unionID).
2.对于用户而言,登录的入口也就是那个<button>组件的显示与隐藏(拿到userinfo进而解密获取unionID).
3.如果一开始用户点击了<button>,授权了userinfo,那么对于用户而言就是登录成功了,但如果用户突然通过设置关闭了授权,那么虽然对开发者而言用户依旧是登录状态的,但此时应该将<button>组件再次显示(从用户角度来说就是'未登录'了).
我可以这么理解么?
@彬彬 登录过的用户就不在显示登录页了,直接显示首页了。没明白你意思
@小黄人
我没关注你们公众号,没拿到unionid吧,哈哈
@changxue_xu
这样也是有可能会过期的, 取决于小程序内部的机制是怎么样的,
应该是短期内多次wx.login获取的code得到的session_key应该是一样的.
但是时间一长就不一样了
如果你上次拿wx.login是很久之前, 通过button的getUserInfo拿到信息之后再执行wx.login()导致了session_key刷新, 那么新的code所获取的session_key是不能对数据进行解密的
我已经改完了,不用登录按钮
@楼上几位
我在APP onLaunch时提前调用wx.login拿到的code为什么不能用于解密登录页getuserInfo <button>组件获取的encryptedData(假定我5分钟之内操作完成)?
@陈龙不会只有在触发成功的时候才去搞code
@changxue_xu 会过期的.