一、登陆流程图

二. 简单理解

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

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

转载自:http://www.cnblogs.com/thinkingthigh/p/7094492.html

微信小程序登陆流程图相关推荐

  1. 微信小程序登陆凭证校验出现{errcode:40029,errmsg:invalid code, hints: [ req_id: weh8ka0297hc58 ]}

    问题描述: 微信小程序登陆校验时需要使用临时登录凭证code ,appID和appsecret获取 session_key 和 openid 等.但是后台向微信服务器请求时一直报{"errc ...

  2. 微信小程序——登陆凭证校验报错{errcode:40029,errmsg:invalid code, hints: [ req_id: weh8ka0297hc58 ]}

    微信小程序登陆校验时需要使用临时登录凭证code ,appID和appsecret来向微信服务接口来获取 session_key 和 openid .但是后台向微信服务器请求时得到的一直是{" ...

  3. PHP —— 用 ThinkPHP5.0 实现微信小程序登陆

    PHP -- 用 ThinkPHP5.0 实现微信小程序登陆 <工欲善其事,必先利其器> 大家好,之前学习了 原生 PHP 和框架,今天我们运用框架 TP5.0 来实现一下微信小程序的用户 ...

  4. 微信小程序-登陆注册滑块验证

    微信小程序-登陆注册滑块验证 一.创建自定义组件MoveVerify 二.在index页面使用 一.创建自定义组件MoveVerify MoveVerify.js Component({/*** 组件 ...

  5. 微信小程序登陆,后端接口实现 - springboot

    登录流程 1.通过调用wx.login获取登录凭证(code) uni-app通过调用uni.login 2.前端将code提交给服务器,springboot访问 auth.code2Session, ...

  6. 微信小程序登陆验证机制理解及实现

    椰汁笔记,欢迎指正 微信小程序的登录(python flask实现后端),实现的核心是 让服务器得到用户的openid. 服务器生成sessionId发送给客户端,sessionId即是客户端和服务器 ...

  7. 小程序授权信息是保存在微信服务器,微信小程序登陆,授权,手机号授权流程及滚动穿透,保存图片等问题...

    提纲: 滚动穿透 登陆,授权流程 手机号授权流程 保存图片 webview的使用 问题一二针对于,弹窗内容嵌套在蒙层内. 1. 点击弹窗外关闭, 你已经购买过该课程 您已经购买该课程了,请前往听课 去 ...

  8. uniCloud 微信小程序登陆全流程demo

    ps: Q群:743496144 博主一向不喜欢废话,直接说几个点,你悟了就直接去试,可以不用看完,还是得自己去试印象才深刻,博主写博文就怕自己以后忘记做个笔记顺便能帮一个是一个 1.你要获取unio ...

  9. 基于uniapp开发 微信小程序登陆页面一

    此微信登陆页面是参考uniapp开发文档 uniapp一键登录和button组件中的@getphonenumber方法 代码展示 <template><view class=&quo ...

最新文章

  1. w命令、vmstat命令、top命令、sar命令、noload命令
  2. [Leetcode] Remove duplicates from sorted array ii 从已排序的数组中删除重复元素
  3. 【Kotlin】apply 内联扩展函数 ( apply 函数原型 | apply 函数示例 | Kotlin 调用 Java API )
  4. 计算机网络实验三:网络层和链路层网络协议分析
  5. parkAndCheckInterrupt
  6. java 中的fork join框架
  7. 4K屏幕+5500万像素摄像头,以成未来手机的一大趋势
  8. Python 猜数字游戏
  9. 安全研究公司Gauntlet称轻量级区块链协议Mina的攻击成本很高
  10. 微型计算机原理及应用论文,微型计算机原理及应用7030112997-TP19300101.pdf
  11. 入行自媒体怎么快速变现,详细教程,教你手把手运营
  12. 1.7 COMS边沿触发器
  13. 电脑浏览器连接不上网络,微信都有网络
  14. 深圳医疗器械帮;一个军团的诞生
  15. 怎样把计算机网络共享给手机,怎么把电脑的网络通过USB共享给手机?
  16. MATLAB指纹识别技术[完美运行,详细解释,GUI界面,万字文稿]
  17. 【网络安全】ip地址、公网、私网
  18. IEC61850缩略语一览表
  19. cloudera/quickstart
  20. 视觉SLAM十四讲学习第二部分(ch7-ch14)

热门文章

  1. 10月28号安全焦点DDOS事件背后内幕串串烧~~
  2. 关联规则 支持度 置信度 提升度
  3. WPS文字技巧—如何快速的为中英文混合文字内容排版
  4. 一休哥儿童浏览器 v1.6 官网
  5. 毕业季寄行李使用python得到便宜的快递
  6. 幽门螺杆菌检测方法学习笔记
  7. MySQL 数据库(Python 连接数据库)
  8. java defunct怎么杀掉_杀死Linux中的defunct进程(僵尸进程)的方法指南
  9. Python判断字符串是否为数字、浮点数、字母
  10. lotus 删除扇区 删除残留扇区