一. 官方登录时序图

官方的登录时序图

二. 简单理解

这里仅按照官方推荐的规范来

0. 前置条件

一共有三端:
- 微信小程序客户端
- 第三方服务器端
- 微信服务器端

1. 客户端获得code,并将code传给第三方服务端

微信小程序端调用wx.login,获取登录凭证(code),并调用接口,将code发送到第三方客户端

2. 第三方服务端用code换session_key和openid

小程序端将code传给第三方服务器端,第三方服务器端调用接口,用code换取session_key和openid

3. 第三方服务端生成新的session(3rd_session)

第三方服务器端拿到请求回来的session_key和openid,先留着,不能给客户端;然后用操作系统提供的真正随机数算法生成一个新的session,叫3rd_session

4. 第三方服务端建立对应关系,并存储

将3rd_session作为key,微信服务端返回的session_key和openid作为值,保存起来

5. 第三方服务端将3rd_session发送到客户端

客户端只拿到3rd_session就够了,大人说话小孩别插嘴,小程序不需要知道session_key和openid

6. 正常请求

小程序每次请求都将3rd_session放在请求头里,第三方服务端解析判断合法性,并进行正常的逻辑处理。

最新文章

  1. css position的使用
  2. flask表单提交的两种方式
  3. nginx 匹配.zip .apk 结尾的文件 直接下载
  4. python访问mysql将返回的表转化为json
  5. 计算系数 (codevs 1137) 题解
  6. fadein()
  7. 学习PHP时的一些总结(二)
  8. mb_detect_encoding() 运行sitemap.php 字符编码不能转换修改php.ini
  9. robotium从入门到放弃 四 Robotium常用API
  10. POI 操作Excel疑难点笔记
  11. Java源码学习 -- java.lang.String
  12. php接口interface的使用
  13. geotrellis使用(三十六)瓦片入库更新图层
  14. 2018-2019-20175205实验二面向对象程序设计《Java开发环境的熟悉》实验报告
  15. Cron表达式解析
  16. idea怎么创建properties文件
  17. 在VS2015中用C++编写可被C#调用的DLL
  18. [转载]SMTP的几个端口的比较
  19. SQL中datetime和timestamp的区别
  20. LigerUI之Grid使用详解(三)——字典数据展示

热门文章

  1. 「日常训练」 Soldier and Cards (CFR304D2C)
  2. webpack loader之css、scss、less、stylus安装
  3. Struts2(三.用户登录状态显示及Struts2标签)
  4. Wordpress 设置后台自定义post 排序
  5. ContOS软件包安装【零】
  6. org.json.Json Object的put和append方法比较
  7. CE-HTML简介
  8. Java 中的异常和处理详解(转载)
  9. lintcode-137-克隆图
  10. js把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式