微信小程序登录流程+介绍wx.login和auth.code2Session
几个核心API和核心字段
wx.login() 调用接口获取登录凭证(code)
code2Session 登录凭证校验,为了获取会话秘钥session_key
wx.checkSession() 检查登录态是否过期
wx.getSetting() 获取用户的当前设置
wx.getUserInfo 获取用户信息,获取之后需要解密数据
session_key 会话秘钥,是通过调用接口获取登录凭证获取的,是有时效性的

微信小程序登录流程


介绍wx.login和auth.code2Session
wx.login:微信小程序的登录方法,获取临时登录凭证code,并回传到开发者服务器。

auth.code2Session:换取 用户唯一标识 OpenID 和 会话密钥 session_key信息进行登录凭证校验。


登录流程解析
首次登录:
1、首先需要调用小程序api接口 wx.login() 获取 临时登录凭证code ,这个code是有过期时间的。
2、将这个code回传到开发者服务器(就是请求开发者服务器的登录接口,通过凭证进而换取用户登录态信息,包括用户的唯一标识(openid)及本次登录的会话密钥(session_key)等)。
3、拿到开发者服务器传回来的会话密钥(session_key)之后,前端要保存wx.setStorageSync(‘sessionKey’, ‘value’)

再次登录的时候,就要判断存储的session_key是否过期了:
1、获取缓存中的session_key,wx.getStorageSync(‘sessionKey’)
2、如果缓存中存在session_key,那么调用小程序api接口wx.checkSession()来判断登录态是否过期,回调成功说明当前 session_key 未过期,回调失败说明 session_key 已过期。登录态过期后前端需要再调用 wx.login()获取新的用户的code,然后再向开发者服务器发起登录请求。
3、一般在项目开发,开发者服务器也会对用户的登录态做过期限制,所以这时在判断完微信服务器中登录态如果没有过期之后还要判断开发者服务器的登录态是否过期。(请求开发者服务器给定的接口进行请求判断就好)。
4、无论是微信服务器过期了还是开发者服务器登录态过期了,都要像首次登录那样开始三步骤。所以注意封装代码。
————————————————
版权声明:本文为CSDN博主「淡淡烟雨淡淡愁」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/UchihaItachi1/article/details/105574452

微信小程序登录流程+介绍wx.login和auth.code2Session相关推荐

  1. 微信小程序-微信小程序登录流程(一)

    微信小程序,小程序的一种,英文名Wechat Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫或搜一下即可打开应用 冷启动: ...

  2. Python Flask微信小程序登录流程及登录api实现代码

    1.小程序端调用wx.login 2.判断用户是否授权 3.小程序端访问 wx.getUserInfo 4.小程序端js代码:+ wx.login({success: resp => {// 发 ...

  3. 微信小程序登录流程php,微信小程序登录流程​

    对于小程序的登录流程微信官方文档也有描述不清的情况,作为一个后端开发研究了小程序关于登录的所有信息对整个登录流程做一个梳理. 首先明确一点,这里指的小程序登录时wx.login(),并不是授权获取用户 ...

  4. Python-Flask微信小程序登录流程详解及后台实现

    文章目录 登录流程图及个人理解 登录接口源码 登录流程图及个人理解 1.前端将由wx.login()方法获取到的用户临时登录凭证code(只能使用一次)传给后台服务器(即登录接口) 2.后台利用微信小 ...

  5. 微信小程序开发流程介绍

    1&:起步 一.申请账号: 点击 mp.weixin.qq.com/wxopen/ware- 根据指引填写信息和提交相应的资料,就可以拥有自己的小程序帐号. 登录 mp.weixin.qq.c ...

  6. 微信小程序app.js调用wx.login

    只为梳理一下自己调用微信登陆的思路 先做一个简单的封装,将接口地址存到变量中,方便调用. 在utils中建立一个文件constant.js var rqcfg = {domin: 'https://a ...

  7. 微信小程序登录流程,双登录,手机号登录和账户密码登录

    一.第一步: 在app.js文件中调用wx.login方法发送res.code和appid给后台,后台返回openid和session_key,把openid和session_key存入storage ...

  8. 微信小程序通过getUserProfile和wx.login获取后端的token

    后端接口要求encryptedData,iv,rawData,signature,code这个5个参数,前4个在getUserProfile方法中,后一个在wx.login中,最后在掉接口,所以我想到 ...

  9. 【小程序】微信小程序开发流程

    文章目录 一.概述 二.整体开发架构 三.注册账号和安装开发工具 1)注册账号 1.注册方法 2.选择注册的帐号类型 3.填写邮箱和密码 4.激活邮箱 5.填写主体信息 6.登录后台补充信息 2)安装 ...

最新文章

  1. 从源码角度看Android系统SystemServer进程启动过程
  2. phpstudy mysql端口_完美解决phpstudy安装后mysql无法启动(无需删除原数据库,无需更改任何配置,无需更改端口)直接共存...
  3. [剑指offer][JAVA]面试题第[46]题[把数字翻译成字符串][递归][逆推]
  4. 树莓派 | threading01 - 创建两个子线程同时运行,两个线程各负责控制一个LED灯以不同的频率闪烁
  5. 《掌握需求过程》阅读笔记三
  6. hibernate里的实体类中不能重写toString
  7. 资源重复 uac.res resource kept(转)
  8. sql 最外层传值给最内层查询_腾讯云高级工程师如何玩转PG查询处理与执行器算法...
  9. STM32F107+LWIP+FreeRTOS
  10. matlab里面fig文件坐标轴名称单位,MATLAB如何提取fig文件中的xyz坐标值
  11. Android中Intent的介绍
  12. jeecms导入myeclipse时web-inf下html出错,jeecms myeclipse
  13. mac写python用什么软件_Mac安装软件,一条指令就搞定
  14. 「面试复习」「Java」三、Java并发
  15. 鸿蒙系统升级到第几批了,鸿蒙系统第四批升级名单有哪些 鸿蒙系统第四批升级机型介绍...
  16. MATLAB中表示点形状、颜色的常见符号
  17. CCS 使用报错合集 -mcu:cc26xx
  18. Perforce warning:Can't clobber writable file ...
  19. 3G、4G、5G有何不同之处,你真的懂吗?
  20. 解决:Import googleapiannotations.proto was not found or had errors

热门文章

  1. SqlSever错误 证书链是由不受信任的颁发机构颁发的
  2. 生于彼,长于此:狗形机器人的中国情缘
  3. CDH 版 Hadoop 下载
  4. .NET对JAVA进行AES加密(SHA1PRNG)及解密方法
  5. 【UE4 C++】大规模人群绕行避让的最优解DetourCrowdAIController如何开启
  6. 成绩分类 总结(Java)
  7. 计算机应用基础实验课讲稿,计算机应用基础测试题讲课讲稿.doc
  8. html获取jsq中定义的参数,如何在HTML5中标记也可用作行标题的数据单元格?
  9. 智信精密深交所上市:市值46亿 实控人李晓华武大本科肄业
  10. 陕西师范大学计算机类专业咋样,陕西师范大学计算机科学学院