微信小程序 登录流程规范解读

一. 官方登录时序图

二. 简单理解

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

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放在请求头里,第三方服务端解析判断合法性,并进行正常的逻辑处理。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

如何部署Samba服务

一、samba存在的意义 有时为了方便windows与linux虚拟机之间的文件共享,我们一般用SAMBA服务来解决,有人会问,VMTool不是可以直接设置sh...

4705
来自专栏令仔很忙

新手学Linux(八)----MySql安装(Centos7)

最近项目新申请了云服务器,老大让我搭了下环境,在安装MySql的时候遇到的坑稍微多点,所以在这里做个记录,我的安装方式不是通过安装包来安装的,而是通过yum来...

1221
来自专栏我是攻城师

小知识之Linux系统中的最大进程数,最大文件描述,最大线程数

4014
来自专栏北京马哥教育

基础拾遗--【转】df与du不一致情况分析

df 显示的已使用磁盘占用率比du 统计出来的结果要大很多。原因,主要是由于两者计算结果的方式不同。 一、实验情况 1、创建并删除文件 创建文件前的磁盘容量情况...

2237
来自专栏加米谷大数据

MongoDB 安装和可视化工具

MongoDB 是一款非常热门的NoSQL,面向文档的数据库管理系统,我选择的是 Enterprise Server (MongoDB 3.2.9)版本,安装在...

1971
来自专栏pangguoming

两台centos之间传送文件

最近在CentOS系统中(主机A)读数据。由于A主机只是作为数据读取,具体的Deep Learning 实验,需要在主机B( CentOS )中进行,需要将主机...

1403
来自专栏Java面试笔试题

JDBC中如何进行事务处理?

Connection提供了事务处理的方法,通过调用setAutoCommit(false)可以设置手动提交事务;当事务完成后用commit()显式提交事务;如果...

1282
来自专栏Linux驱动

linux下使用gcc编译运行C程序

gcc(GNU Compiler Collection)是Linux下最常用的C语言编译器,是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和...

2589
来自专栏linux运维学习

linux学习第五十二篇: exportfs命令,NFS客户端问题,FTP介绍,使用vsftpd搭建ftp服务

exportfs命令 常用选项 -a 全部挂载或者全部卸载 -r 重新挂载 -u 卸载某一个目录 -v 显示共享目录 以下操作在服务端上 vim /et...

2048
来自专栏Vamei实验室

Linux常用命令

我总结了常用的Linux命令,方便你的Linux使用。下面是格式说明,你现在可以跳过,直到遇到疑问时再来查询。 $ 命令行提示符 粗体表示命令 斜体表示参数 ...

2607

扫码关注云+社区