1. 首页
  2. 创业资讯
  3. 创业指南
  4. 正文

微信小程序的“授权”设计原理简介

 2020-12-28 11:32  来源:网络综合  我来投稿 撤稿纠错

  【推荐】海外独服/站群服务器/高防

多个平台需要单独注册账号,微信小程序却支持“授权登录”,减少了用户注册账号时消耗的时间与繁琐,降低获客门槛。微信生态圈拥有直接调用的封装功能,但也导致功能受限。在这里我给大家简介一下“授权”设计原理。

01 openID

这是微信生态圈中,为了识别用户,每个小程序或者公众号对每个用户生成的一个唯一的ID,类似身份证号,针对该小程序或公众号具有唯一校验的属性。

储存openID,在用户下次进入小程序中,可识别用户身份,实现免登陆功能。小程序本身已经实现了登录功能,所以降低的开发成本。但获取openID只适用于规划中不含有app等其他平台应用的产品,如果想要实现多应用,在最初设计时,不要用openID。

02 UnionID

如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 UnionID 是唯一的。

同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。注意:需要在微信开放平台将多个应用绑定在同一主体下,才能实现多应用共用一个UnionID,此配置需要前置进行。

03 其他用户信息

包括:用户信息、地理位置、定位、通讯地址、发票抬头、获取发票、运动步数。

04 微信绑定手机号

获取用户微信默认绑定的手机号,需要用户点击页面中的按钮(button),才可以调用此功能。弹窗里支持用户修改手机号。如果业务中需要使用手机号来注册,就可以使用此功能获取,如业务中不强制要求,则只需获取用户openID/UnionID,在必要环节获取手机号,以提升用户体验。

如何获取这两种ID:

点击页面中的按钮,弹出授权弹窗用户同意授权,才可获取。注意:用户的openID是放在【用户授权获取昵称和头像】中。引申一个知识点,还有一种方式是通过微信官方提供的登录功能获取openID,但在获取UnionID时会出现获取不到的情况,所以并不推荐使用此方法。如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号。系统可以直接获取到用户的openID/UnionID,无需用户再次授权。如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用。小程序用户无需再次授权。用户在小程序中支付完成后,5分钟内可获取用户的openID/UnionID,无需用户授权。此应用场景,如果你想要获取用户的昵称头像和手机号,那么需要设计两次点击按钮,并且弹出两次授权弹窗,一次按钮点击获取一种授权,并且只能放在不同的按钮中。

05 单一登录流程改造跨平台适配案例

在APP中,有微信授权登录、手机号验证码登录,手机号密码登录三种登录模式。微信授权登录的设计相对来说比较复杂。用户A—登录小程序—获取到openID—绑定了手机号1—视为老用户老用户A—使用微信授权登录APP—获取到unionID—绑定了手机号2如果用户在app登录,有了unionID,他绑定了其他手机号怎么办?这个时候创建一个新用户吗?那就存在一个unionid绑定了两个手机号的情况。

表面上我一定要把openID和unionID关联起来,其实大可不必。在这种情况下,以手机号为唯一标识,视为两个用户即可,只有绑定了相同手机号,数据才会互通合并。创建的新用户,他的openID为空,获取到unionID即可。

即:用户A 是openID+手机号1,用户B是unionID+手机号2+openID为空。

互联网快速迭代,小程序也是,其便捷快速的优点正好能适应大部分互联网产品的需求,当然也会依赖微信生态圈而受限。以上是简单的原理分享,希望大家能够有所受益。

申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!

Document