微信小程序登录流程+介绍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. VTK:绘图之SurfacePlot
  2. bond的主备模式_linux-rhel7配置网卡bond双网卡主备模式
  3. 获得指定时间所在月份的天数
  4. linux datetime,Python datetime模块示例详解
  5. java中缓冲区和缓存_Java中的Google协议缓冲区
  6. Ubuntu修复Fix Busybox Initramfs错误
  7. 两个oracle数据库外网同步,利用DBLink+JOB实现两个Oracle数据库之间的数据同步
  8. 算法竞赛入门经典题解目录
  9. UWP开发:APP之间的数据交互(以微信为例)
  10. springboot导出pdf文件(简历)
  11. android fragment 抽屉,android – Actionbar和Navigation抽屉 – 使用Activity / Fragment滑动Actionbar...
  12. magicbook的linux是哪个版本,荣耀MagicBook 2019预装Linux 影响使用吗
  13. yuv 420 8 bit 转 10bit
  14. 计算机加内存还是固态硬盘,电脑运行速度慢加内存条还是固态硬盘
  15. iview的DatePicker 怎么选择时分秒
  16. 计算机网络数据通信部分之网络层ARP报文分析
  17. 音频(一) - 音频基础知识
  18. 吉利汽车、京东数科、盛美半导体……来了解下科创板排队的“高研值”企业...
  19. 今日份PS练习|玉桂狗海报
  20. HTML标签textarea去除红色下划线

热门文章

  1. 使用Serv-U搭建FTP服务器
  2. 概率专题 卡牌游戏:抽取不放回的抽到k张稀有卡片期望
  3. Jenkins由英文界面改成中文界面
  4. 杨大川:未来BI重点回归客户端
  5. idea中补全变量快捷键_我最常用的Intellij IDEA快捷键
  6. java pmd_java代码扫描:pmd开源项目介绍
  7. python对url格式解析的方法
  8. consul安装搭建
  9. 路径规划之PRMRRT类算法分析
  10. 如何从HITRAN数据库 获取数据