wx.login
发布于 5 年前 作者 pingzhu 679 次浏览 来自 问答

我想问一种场景。

  1. 用户重来没有关注过我的小程序关联的任何app和公众号.

  2. 用户打开我的小程序。并且点击了登录按钮。登录按钮是 button opentype是 getuserinfo.

  3. 用户同意了授权.在button 的bindgetuserinfo方法中,调用wx.login方法,得到code再用code去请求微信服务器,是否能得到unionid?

    希望官方给出解答,官方文档说的不是太明白.

9 回复

不是,code传一次就好了,session_key好像登录态不过期就不会过期,不要重复登录

本来用code获取UID不用授权是很完美的方法,可是用户不先关注公众号拿不到就很尴尬了,总不能拿不到UID就提示请关注公众号吧,这样就成了诱导分享了要被严打。只好用getuserinfo接口获取encryptedData 解密取UID了,解密又要用sessionKey所以又要login,唉!

sessionKey最好还是在后台保存,在后台解密,然后把结果返给你。

getPhoneNumber之前调用login是在一app.js的onLaunch里面就调用然后把code保存起来,等getPhoneNumber回调的时候一同传给后端吗?

unionid 只有第三方平台关联了小程序才会有!

@小朱

session_key如果保存在后台,在后台解密, 那对我前台开发者来说是不是就只需传code给他, 而为了防止code过期, 所以在bindgetuserinfo方法中要再次调用wx.login拿到最新的code传给后台?

那就只能缓存sessionKey了吧.

这个我可以百分百告诉你,不会得到UID,用code获取必须必须必须满足两个条件:

1.在微信开放平台下存在同主体的App、公众号、小程序。

2.用户关注了某个相同主体公众号,或曾经在某个相同主体App、公众号上进行过微信登录授权。

而用getuserinfo获取到encryptedData解密后的参数中,不需要关注公众号,只要你公众号和小程序同时在开放平台绑定了满足这一个条件,就能获得UID。不然为啥这么多人一听这个接口调整了都疯狂了

回到顶部