简单了解微信小程序登录流程

335 阅读3分钟

微信小程序实现登录步骤:

1. 注册

在用户使用APP之前需要先注册,常见的注册方式有邮箱注册、手机号注册等,注册完需要设置账号密码,以便后面进行登录。这一步用户在整个生命过程中仅需操作一次。

2. 登录

一般的做法是输入账号密码、或者输入手机号及短信验证码进行登录,服务端校验用户信息通过之后,下发一个代表登录态的token给客户端,以便进行后续的交互。每当token过期,用户都需要重新登录。

3. 维持登录态

登录完之后,用户能使用APP了,这个时候所有客户端请求都需要将代表登录状态的token夹在http请求里传给服务端,以便服务端确认用户身份,一般的做法就是将token放到cookie里或者放到请求头里。

小程序登录为什么能做到更好的体验

传统APP整个注册登录流程还是比较繁琐的,首先,我们需要大致了解小程序用户体系。

小程序用户体系

对于每个小程序,微信都会将用户的微信id映射出一个小程序openid,作为这个用户在这个小程序的唯一标识,对于拥有多个小程序的开发者,开发者可以注册一个微信开放平台账号,然后把所有小程序绑定在这一个开放平台下,这样的话微信还会将微信id映射出一个unionid,作为这个用户在整个开放平台的唯一id。(注:该能力不单限于小程序,所有公众号、网站、移动APP,只要使用微信开放能力登录的应用,都能获取到unionid,这样就能打通各个平台的用户账号体系了。) 了解了以上知识,就可以分析为啥小程序登录更简洁优雅了。

1. 小程序不需要用户注册

小程序寄生在微信APP内,微信已经做完了用户注册这个事情了,只需要微信告诉你这个微信用户是谁就行了。

2. 小程序登录能够通过技术手段让用户无感知

传统的登录需要输入账号密码,为啥小程序登录不需要呢?因为小程序运行在微信里面,而此时用户本身必然处于微信的登录态,这样小程序开发者就可以通过接口与微信服务器进行沟通,获取用户信息。如果把这个过程设置在小程序启动时执行,那么整个过程对用户来说就是无感知的。这也就是静默登录

3. 维持登录态

微信小程序的执行环境并不是一个浏览器环境,没有cookie,因此一般将token放入http请求头部里。

最佳实践

小程序启动后 -> 小程序调用wx.login获取code -> code传给小程序后台 -> 小程序服务端通过code去微信服务端花换取openid -> 小程序服务端记录用户登录并生成token -> token返回小程序客户端