Live2d Test Env

微信小程序登陆流程(详尽版)

今日回顾了下微信小程序的登陆流程,做个总结

微信小程序登陆流程中一共有三个角色:

  • 小程序客户端 =》 小程序前端开发者 MiNiProgram

  • 服务器端 =》 小程序后台服务器开发者 Developer Service

  • 微信服务器 =》 Wechat Http Api

流程详解:

  1. 前端通过调用wx.login接口向微信服务器请求一个code

    微信服务器向前端返回一个code码

    该code码有效时长目前为5分钟

    这个code前端并不需要使用,但前端需要将这个code值使用wx.request发送给后台,目的是换取openid

    wx.login通常在app.js中的onLaunch声明周期中进行

  2. 后台接收到前台发送的code码后,会连同 appid 和 appsecre 向微信服务器发起请求,

    appid 和 appsecre获取方法:微信公众平台-》扫码登陆 -》 开发-》 开发设置 -》

  3. 请求成功后,后端会接收由微信服务端返回的session_key和openid

    openid:开发者用户的唯一标识

  4. 后端一般不会直接将openid返回给前端,而是返回前台一个token作为用户的登陆状态凭据

    如果公司期待用户不仅仅在小程序端登陆 ,而是在公司也有账号和密码,则会将openid+账号+密码一同写入公司用户表

  5. 前端使用storage保存这个token,下次用户再次登陆时,通过发送给后台storage里的token来验证登陆是否过期,如果过期则提示再次登陆,如果没有过期则开始下一步业务逻辑

    token过期失效目前为2小时

    此刻 该token值作为验证用户登陆态的唯一标识

    这样做的好处是防止用户频繁登陆

  6. 确保token未过期后,前端就可以携带token向后端发送请求

  7. 后端在接收了前端传来的用户token后,便可以根据该用户token查询基于该用户的数据信息,并返回给前端

    比如该用户的购物车数据

  8. 前端展示用户相关数据

以上是整个微信小程序开发流程,身为前端开发者需要做的事情有:

  * 1. 调用wx.login向微信服务器请求获取code
        
  * 2. 调用wx.request发送code到后台服务器,此时服务器会返回一个token作为登陆状的标识
  
  * 3. 将登陆态的标识token进行存储,以便下次使用
  
  * 4. 请求需要登陆态标识的接口时,携带token

储存token值

  1. 使用getGlobolData存储,以供本次小程序运行使用,

  2. 使用wx.Setstorage存储token,以便下次小程序运行使用

posted @ 2020-05-13 13:48  致爱丽丝  阅读(2779)  评论(0编辑  收藏  举报