杂谈
最近在进行一些相关的课题,就写篇文章总结分享一下,如果有疑问或者观点也欢迎大家讨论。
微信小程序的身份识别采用的是UnionID和OpenID结合。
UnionID机制说明
如果开发者拥有多个移动应用、网站应用、和公众账号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台账号下的移动应用、网站应用和公众账号(包括小程序),用户的 UnionID 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。
UnionID获取途径
绑定了开发者账号的小程序,可以通过以下途径获取 UnionID。
- 开发者可以直接通过 wx.login +
code2Session获取到该用户 UnionID,无须用户授权。 - 小程序端调用云函数时,可在云函数中通过 Cloud.getWXContext 获取 UnionID。
- 用户在小程序(暂不支持小游戏)中支付完成后,开发者可以直接通过
getPaidUnionId接口获取该用户的 UnionID,无需用户授权。这个接口仅在用户支付完成后的5分钟内有效。
OpenID机制说明
OpenId 是一个用户对于一个小程序/公众号的标识,开发者可以通过这个标识识别出用户。开发者不可以使用OpenId 作为用户的登录态。开发者需要自己在后台生成一个拥有有效期的第三方session来做登录态,用户每隔一段时间都需要进行更新以保障数据的安全性。
总结
微信小程序的身份识别采用的是UnionID和OpenID结合,总体思路是很清晰的,整体效果也还是挺不错的。