前言
微信小程序凡是需要记录用户信息都需要登录,但是也有几种不同的登录方式,但是在小程序部分的登录流程是一样的。之前就朦朦胧胧地用之前项目的逻辑改改直接用了,这个新项目要用就又结合官方文档重新梳理了下,并记录一下,好记性不如烂笔头嘛,哈哈。
几种登录流程设计
利用OpenId 创建新用户
这种方式我的理解大体上就是一种静默登录,获取用户信息之后解密用户信息并通过OpenId直接创建新用户
利用Unionid 创建新用户
这种方式的特点是可以利用Unionid实现多个小程序、公众号、已有登录体系的数据互通。
利用现有登录体系
这是笔者目前在使用的一种登录方式,大体上是复用了现有的登录体系,授权获取个人信息之后输入手机号和验证码就能完成登录了,同时OpenId与个人信息都存在了我们自己的服务器。
几个核心API和核心字段
- wx.login() 调用接口获取登录凭证(code)
- code2Session 登录凭证校验,为了获取会话秘钥session_key
- wx.checkSession() 检查登录态是否过期
- wx.getSetting() 获取用户的当前设置
- wx.getUserInfo 获取用户信息,获取之后需要解密数据
- session_key 会话秘钥,是通过调用接口获取登录凭证获取的,是有时效性的
主要流程
最后再附上一张官方文档上登录流程图
总结
由于其他两种登录方式还没使用过,我单就使用过的利用现有登录体系这种方式总结一下。
当一个用户来使用我们的小程序时,在一个需要登录的页面,会经历以下几个步骤:
tips: 由于最新的文档要求获取用户信息必须用户主动触发,不能开发者自动调取了,所以现在需要做个授权页面引导用户点击