一、获取用户信息(昵称、头像)
获取用户信息有两种方式。一种是通过 wx.getUserInfo()
,静默获取用户信息,但是需要用户之前授过权,否则拿不到信息。另一种方式是通过微信开放能力,通过 <button class="agree-btn" open-type="getUserInfo" bindgetuserinfo="onGotUserInfo">微信授权登录</button>
的方式由用户主动触发,一定能拿到用户信息(昵称、头像、地区..)。
picture1.jpg
二、登录凭证
wx.login()
是微信登录凭证,接口返回 code
,结合 appid
、appsecret
,通过后台服务调用微信服务 GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
获取用户唯一标识 openId
和会话密钥session_key
,如果用户已经授权,则还会返回开放平台唯一标识 unionId
。
picture2.jpg
也就是说可以静默获取到 openId
,不一定能获取 unionId
,除非用户授权(需要接口支持)
三、获取用户绑定手机号
通过微信开放能力 <button class="agree-btn" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">授权绑定手机号</button>
获取到加密数据 encryptedData
和初始向量 iv
,后端结合 session_key
解密出手机号,session_key
不要存放在前端,存在安全问题