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

一. 官方登录时序图

二. 简单理解

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

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 条评论
登录 后参与评论

相关文章

来自专栏枕边书

一键部署进化史

前言 ---- 之前的文章说过 由 PHP 转到 Java 之后,非常不适应的一点就是代码部署过程耗时长,调试不便,虽然可以使用 debug,但有时候还是需要修...

3378
来自专栏架构之路

Ubuntu下安装codeblocks步骤

前言 linux下安装codeblocks本来就是件困难的事情,因为通常情况下,需要安装的各种依赖安装不全会导致CB安装失败,然后在安装各种依赖的过程中又会产生...

3056
来自专栏JetpropelledSnake

Web安全学习笔记之HTTP协议

1052
来自专栏Samego开发资源

ubuntu动态一键切换python版本

1374
来自专栏陈纪庚

HTTP权威指南学习心得

2.利用DNS(domain name service)对主机名进行转换,得到IP地址

602
来自专栏数据库

ABP.Net Core Entity Framework迁移使用MySql数据库

一、迁移说明 ABP模板项目Entity Framework Core默认使用的是Sql Server,也很容易将数据库迁移到MySQL,步骤如下。 二、迁移M...

26610
来自专栏Rovo89

终端ssh登录你的服务器

1225
来自专栏流柯技术学院

Jmeter压测过程报错the target server failed to respond

问题原因:在JMeter下,发送http 请求时,一般都是默认选择了use keepAlive(这个是什么?看后面资料),这个是连接协议,JMeter坑就在这里...

631
来自专栏Script Boy (CN-SIMO)

Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析

转载请注明出处:CN_Simo。 题解:   本篇内容主讲Qt应用从创建到发布的整个过程,旨在帮助读者能够快速走进Qt的世界。 本来计划是讲解Qt源码静态编译...

2810
来自专栏Android机动车

Jenkins实现Android自动打包

14年在给天天酷跑团队做sdk的算是第一次接触到Jenkins,当时有种乡下孩子进城的感觉,被jenkins流弊的体验所折服,只需要一个按钮点一下就坐等出包,不...

632

扫描关注云+社区