1.openid可以用于区别不同用户,但是同一用户在小程序和公众号的openid是不一致的,如果想要做用户数据关联,unionid是一个不错的解决方案,不过要在微信开放平台上把你想要共享的公众号或是小程序进行绑定
小程序如何获取用户openid和unionid
前端通过wx.login的方法获取到登录凭证code( code (有效期五分钟)只能使用一次)。然后通过code来请求微信端调用 code2Session 接口置换openid和unionid,session_key.这个置换要让后台请求微信服务器来获取。因为前端容易
wx.getUserInfo
// 必须是在用户已经授权的情况下调用
可以获取用户更详细的信息,比如获取用户的手机号注册会员,或者展示头像昵称,判断性别。2021 年 4 月 无法通过wx.getUserInfo与<button open-type="getUserInfo"/>获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据。新增getUserProfile接口(可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认
因需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用(即上述提到的wx.getUserInfo
是无法获取手机号的),需用 button
组件的点击来触发。获得encryptedData
和iv
,同样发送给开发者服务器,由服务器使用session_key
(对称解密密钥)进行对称解密,获得对应的手机号。
静默登录
什么是静默登录?通过微信官方提供的登录能力wx.login 方便地获取微信提供的用户身份标识,快速关联用户。wx.login的行为是静默的,不需要弹框授权。