授权登录降低了用户注册账号时的运营成本,降低了产品获客门槛在本文中,笔者结合案例盘点了微信小程序授权登录设计需要注意的几个问题,并对功能设计背后的设计思路和原则进行了简要分析,供大家参考学习。在经历了4个小程序从0-1的设计/研发/上线的生命周期后,我深深感受到,由于微信生态圈的影响,小程序有很多便捷的打包功能,支持直接调用。同时缺点是很多功能受限,不如原生APP灵活多变。踩了无数个坑,填了无数个坑,就想出了从头到尾总结小程序各个环节的知识点,既归档又分享给读者。适合刚开始接触小程序设计或者想要了解更多小程序知识的同学使用。本文将以小程序开始就需要掌握的OpenID和UnionID,授权微信绑定手机号,获取其他用户信息,跨平台适配,通过亲身体验单次登录流程改造,介绍如何设计这些基本参数和功能点01openid这是微信生态圈中每个小程序或公众号为了识别用户,为每个用户生成的唯一ID。它类似于身份证号,对小程序或公众号具有唯一的验证属性。存储openid,用户下次进入时可以在小程序中识别用户身份,实现免登录功能。小程序本身已经实现了登录功能,降低了开发成本。不过,获得OpenID只适用于计划中不包含app等平台应用的产品。如果你想实现多个应用程序,那么在最初的设计中就不要使用OpenID!我在这里踩了一个大坑,后面会详细介绍。02unionid如果开发者有多个移动应用,网站应用,公众账号(含小程序),可以用unionid来区分用户的统一性,因为只要是同一个微信开放平台账号下的移动应用,网站应用,公众账号(含小程序),用户的unionid都是唯一的也就是说,对于同一用户,同一微信开放平台下的不同应用,unionid是一样的。注意:在微信开放平台上,需要在同一个实体下绑定多个应用,才能实现多个应用共享一个UnionID。这个配置需要提前进行。03其他用户信息包括:用户信息,地理位置,位置,通信地址,发票标题,发票获取,移动步数。04微信绑定手机号获取用户微信默认绑定手机号。用户需要点击页面上的按钮来调用这个函数。弹出窗口支持用户修改手机号码。如需使用手机号在业务中注册,可使用该功能获取。如果业务上没有强制要求,只需要获取用户openid/unionid,在必要环节获取手机号码,提升用户体验。介绍完OpenID/UnionID的区别后,总结一下如何获取这两种ID:栗子,比如想要获取用户的昵称头像和手机号,需要设计两个点击按钮,并弹出两个授权弹窗,一次点击按钮获得一次授权,只能放置在不同的按钮中设计参考:美团,睿行,贝壳租房等小程序。05单次登录流程改造跨平台适配案例5.1旧方案背景及流程图我们的产品是一个分发平台。在最初的规划设计时,由于用人成本的因素,我们并没有准备开发APP,只是单纯希望通过小程序实现运营推广。但在操作过程中,特殊的商业模式容易违规,担心用户举报多,导致封号。高层决定不再依赖微信生态圈,从而倾斜资源自主开发APP。因此,当时小程序的整个登录流程都需要升级,以适应APP多设备注册登录。老方案的流程是这样的:踩坑的地方有两个:一是没有和研发人员明确登录的概念。研发人员认为,获得用户的openid就视为成功登录。对于我们的业务设计来说,获取用户的手机号才是真正的有效用户。第二,由于app一开始并没有规划,所以研究人员在获取用户信息时,选择了获取用户的openid。当有多个移动应用时,用户的unionid无法获取,用户的数据也无法在每个应用中打通。但改造时授权手机号码用户有300多人,因此改造方案经过了较长时间的讨论和研究,最终得到了一个比较完整的解决方案。5.2在修改后的方案中,我们设计了三种登录模式:微信授权登录,手机号验证码登录,手机号密码登录。微信授权登录的设计比较复杂。我只是梳理了一个简单的流程,由项目经理负责输出研发思路。产品设计思路:研发思路(感谢小黑的贡献):在设计过程中,我遇到了一个误区。我当时考虑的问题是:如果用户在app上登录,有unionid,绑定其他手机号码怎么办?此时是否创建新用户?那么有一个unionid绑定了两个手机号的情况,这种场景怎么处理?这个地方的盲点是,我必须将openid与unionid关联起来,这是没有必要的。在这种情况下,以手机号码作为唯一标识,可以将其视为两个用户。只有绑定了同一个手机号码,才能实现数据的交换和合并。创建的新用户的openid为空,可以获得unionid。即用户a为openid+手机号1,用户b为unionid+手机号2+openid为空。06写在下面的小程序快速便捷的研发模式和迭代模式,它可以满足大部分互联网产品快速迭代,快速试错的需求,然而,完全依靠微信生态圈有很多限制。作为小程序的产品经理,每个人都应该把小程序和公众号的文档读透,知道什么是可以做的,什么是不能实现的。