微信小程序登录流程
文章目录
- 1. 用户触发登录操作
- 2. 获取临时登录凭证
- 3. 发送登录凭证到服务器
- 4. 后端使用 code 获取 session_key 和 openid
- 5. 后端保存 session_key 和 openid 返回token
- 6. 前端保存登录态
1. 用户触发登录操作
用户在小程序内部点击登录按钮或进行需要登录权限的操作,触发登录流程。
2. 获取临时登录凭证
当用户点击登录按钮后,小程序调用 wx.login() 获取 code。
// 小程序页面中的登录按钮点击事件处理函数
login: function() { wx.login({ success: function(res) { if (res.code) { console.log(res.code); // 获取到code} else { console.log('登录失败!' + res.errMsg); } } });
}
3. 发送登录凭证到服务器
将获取到的code发送至开发者的后台服务器。这个步骤通常是通过HTTP请求完成的,可能还包含其他必要的参数,如小程序的AppID等。
4. 后端使用 code 获取 session_key 和 openid
后端服务器接收到 code 后,使用自己的 appid 和 appsecret,结合 code,请求微信服务器换取 session_key(本次登录的会话密钥) 和 openid。
5. 后端保存 session_key 和 openid 返回token
后端服务器保存 session_key 和 openid,并可以生成自定义的登录态 token 给小程序
6. 前端保存登录态
前端接收到登录态 token后,保存到本地,以便后续的请求中携带(需要携带token进行身份验证)。
// 小程序页面中的登录按钮点击事件处理函数
login: function() { wx.login({ success: function(res) { if (res.code) { // 发送 res.code 到后台换取 openId, sessionKey, unionId wx.request({ url: 'https://xxxxxx/api/login', // 你的服务器地址 data: { code: res.code,AppID:'xxxxxxxxx' }, method: 'POST', success: function(response) { // 服务器接收 code 并请求微信接口获取 session_key 和 openid,返回登录态 token 给小程序// 登录成功,保存登录态 token 到 storage,并在后续的请求中携带这个token,以便服务器验证用户的身份。wx.setStorageSync('token', response.data.token); // 跳转到其他页面或执行其他操作 }, fail: function(error) { // 登录失败处理 console.error('Login failed:', error); } }); } else { console.log('登录失败!' + res.errMsg); } } });
}
相关文章:
微信小程序登录流程
文章目录 1. 用户触发登录操作2. 获取临时登录凭证3. 发送登录凭证到服务器4. 后端使用 code 获取 session_key 和 openid5. 后端保存 session_key 和 openid 返回token6. 前端保存登录态 1. 用户触发登录操作 用户在小程序内部点击登录按钮或进行需要登录权限的操作ÿ…...
FPGA + 图像处理(三)生成3x3像素矩阵
前言 生成NxN的像素矩阵是对图像进行各类滤波操作的基本前提,本文介绍一种通过bram生成3x3矩阵的方法。 程序 生成bram核 因为本文介绍的是基于bram生成的3x3像素矩阵,所以要先生成两个bram核,用于缓存前两行图像数据 在 IP catalog中选…...
Redis安装说明2
Redis安装说明 1.3.2.指定配置启动 如果要让Redis以后台方式启动,则必须修改Redis配置文件,就在我们之前解压的redis安装包下(/usr/local/src/redis-6.2.6),名字叫redis.conf: 我们先将这个配置文件备份一…...
ArcGIS10.8保姆式安装教程
ArcGIS 10.8是一款非常强大的地理信息系统软件,用于创建、管理、分析和可视化地理数据。以下是ArcGIS 10.8的详细安装教程: 确保系统满足安装要求 在开始安装之前,请确保您的计算机满足以下系统要求: 操作系统:Windo…...
设计原则、设计模式、设计模式项目实战
设计原则 封装、继承、多态、抽象分别可以解决哪些编程问题 封装:也叫做信息隐藏或数据保护访问。数据 通过暴露有限的访问接口,授权外部仅能通过类提供接口访问,对内的类private私有化属性,通过封装简化操作,让用户更…...
【Redis】解决List类型的消息可靠性问题
前言 平时做后端开发时,如果需要用到消息队列功能,但公司的IT环境又没有提供专业的队列软件(RabitMQ/Kafka…),那么在简单且要求不高的场景下,可以使用 Redis 的List数据类型来做消息队列。 但List类型有…...
挑战30天C++基本入门(DAY8--树)[part 3](速通哦~)
#上一章我们把搜索二叉树的知识给传授完毕,如果认真的看下去并且手打了几遍,基本上内部的逻辑还是可以理解的,那我们现在就截至继续学习树的一些重要知识啦~~ 树高怎么求呀?如果用上一次学的层次遍历来求树高,有点小题…...
在虚拟机尝试一次用启动盘重装系统
在虚拟机尝试一次用启动盘重装系统 没有自己重装过系统,也不敢对自己的笔记本下手,用虚拟机重装玩玩试试。 先设置成u盘启动 从boot中选择相应的创建的硬盘即可(刚刚突然发现图片不能上传了,经过乱七八糟的尝试后,开一…...
力扣347. 前 K 个高频元素
思路:记录元素出现的次数用map; 要维护前k个元素,不至于把所有元素都排序再取前k个,而是新建一个堆,用小根堆存放前k个最大的数。 为什么是小根堆?因为堆每次出数据时只出堆顶,每次把当前最小的…...
SCP 从Linux快速下载文件到Windows本地
需求:通过mobaxterm将大文件拖动到windows本地速度太慢。 环境:本地是Windows,安装了Git。 操作:进入文件夹内,鼠标右键,点击Git Bash here,然后输入命令即可。这样的话,其实自己本…...
plasmo内容UI组件层级过高导致页面展示错乱
我使用plasmo写了一个行内样式的UI组件,但是放到页面上之后,会和下拉组件出现层级错乱,看了一下样式,吓我一跳:层级竟然设置的如此之高 所以就需要将层级设置低一点: #plasmo-shadow-container {z-index: …...
《QT实用小工具·十一》Echart图表JS交互之仪表盘
1、概述 源码放在文章末尾 该项目为Echart图表JS交互之炫酷的仪表盘,可以用鼠标实时改变仪表盘的读数。 下面为demo演示: 该项目部分代码如下: #include "widget.h" #include "ui_widget.h" #include "qurl.h&q…...
深入浅出理解ArrayBuffer对象TypedArray和DataView视图
目录 举例理解 1. ArrayBuffer对象 2. TypedArray 3. DataView 总结 具体讲解 1. ArrayBuffer对象 2. TypedArray 3. DataView 注意事项 举例理解 先举个简单的例子理解ArrayBuffer对象TypedArray和DataView视图的概念和之间的关系 1. ArrayBuffer对象 想象一个场景…...
人工智能 - 服务于谁?
人工智能服务于谁? 人工智能服务于生存,其最终就是服务于战争(热战、技术战、经济战) 反正就是为了活着而战的决策。 既然人工智能所有结果,来自大数据的分挖掘(分析)也就是数据的应用&#x…...
软考高级架构师:嵌入式系统的内核架构
作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…...
分布式锁实战
4、分布式锁 4.1 、基本原理和实现方式对比 分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁,只要大家使用的是同一把锁,那么我们就能锁住线程,不让线程进行&#x…...
【VMware Workstation】启动虚拟机报错“此主机支持 AMD-V,但 AMD-V 处于禁用状态”
问题出现步骤: 打开虚拟机: 然后报错: “此主机支持 AMD-V,但 AMD-V 处于禁用状态。 如果已在 BIOS/固件设置中禁用 AMD-V,或主机自更改此设置后从未重新启动,则 AMD-V 可能被禁用。 (1) 确认 BIOS/固件设…...
非关系型数据库(缓存数据库)redis的基础认知与安装
目录 一.关系型数据库和非关系型数据库 关系型数据库 非关系型数据库 关系数据库与非关系型数据库的区别 ①非关系数据 关系型数据库 非关系型数据库产生背景 数据存储流向 非关系型数据库 关系数据库 二.redis的简介 1.概念 2.Redis 具有以下几个优点: 3.Redi…...
Go语言如何处理文件
1.文件的重要性 文件不过是硬盘中的数据,看起来好像没什么了不起,但实际上,文件能够让程序员管理配置、存储程序的状态乃至从底层操作系统中读取数据。 UNIX型操作系统的一个重要特征是,将一切都视为文件。这意味着在操作系统看来,从键盘到打印机的所有东西都可像文件那样…...
Java基础知识总结(42)
(1)Java关键字的相关知识进行了复习 考试过程中“main”是主方法名,而不是Java关键字 (2)类型转换 当一个算术表达式中包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升,所有的b…...
【2026唯一认证流式部署标准】:FastAPI 2.0 + Uvicorn 24.8 + ASGI 4.0协同流控协议详解(含OpenTelemetry追踪模板)
第一章:FastAPI 2.0 异步 AI 流式响应的范式演进与2026标准定位FastAPI 2.0 将原生支持全链路异步流式响应(StreamingResponse)与 Server-Sent Events(SSE)语义融合,标志着 AI 应用后端从“请求-响应”单次…...
LFM2.5-1.2B-Thinking-GGUF入门必看:3步完成低资源GPU部署(含健康检查命令)
LFM2.5-1.2B-Thinking-GGUF入门必看:3步完成低资源GPU部署(含健康检查命令) 1. 模型简介 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的轻量级文本生成模型,专为低资源环境优化设计。这个模型采用GGUF格式,配合llama.…...
从RNN到Mamba:一个算法工程师的‘长文本’建模踩坑与选型指南
从RNN到Mamba:一个算法工程师的‘长文本’建模踩坑与选型指南 当处理长达数万token的日志序列时,传统RNN的梯度消失问题让模型难以捕捉跨时段的异常模式,而Transformer的二次方复杂度又让显存迅速耗尽。这种困境促使我开始系统评估结构化状态…...
美图靠AI一年收入38亿,不靠免费大模型API,靠的是什么?
财报数据显示,美图2025年全年实现营业收入38.6亿元,同比大幅增长28.8%,整体营收规模再创新高,展现出核心业务的强劲增长韧性。不过公司常规账面净利润为7亿元,同比下降12.7%,看似利润下滑的背后,…...
【Django 实验三】个人主页开发实战
【Django 实验三】个人主页开发实战 作者:刘静怡 | 学号:F23016208 | 完成日期:2026年3月29日 目录 环境准备项目创建数据模型设计视图函数编写模板系统Admin 后台配置页面美化功能完善总结 一、环境准备 1.1 环境要求 Python: 3.10Django…...
别再让WIFI信号‘水土不服’!Android 13高通平台国家码配置保姆级教程
Android 13高通平台WIFI国家码配置实战指南 当你的设备跨越国界,WIFI信号却开始"水土不服"——连接不稳定、速度骤降甚至完全无法使用。这背后往往不是硬件问题,而是国家码配置这个隐形门槛在作祟。作为深耕Android系统开发多年的技术专家&am…...
开源音频格式转换终极指南:ncmdumpGUI实现数字音乐资产自由流转的完整方案
开源音频格式转换终极指南:ncmdumpGUI实现数字音乐资产自由流转的完整方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 在数字音乐时代…...
深入解析GD32/STM32 PWM中断:中央对齐模式的应用与实现
1. PWM中断与中央对齐模式的核心概念 第一次接触PWM中断时,我盯着示波器上跳动的波形发愣——明明配置了中断,为什么触发时机总是不对?后来才发现是计数模式没选对。中央对齐模式(Center-Aligned Mode)在电机控制、LED…...
ADC0808搭配51单片机测电压:从芯片手册解读到量程切换逻辑的代码实现
ADC0808与51单片机电压测量系统:从芯片手册到智能量程切换的工程实践 在嵌入式系统开发中,精确的电压测量是许多应用的基础功能。ADC0808作为经典的8位模数转换器,与51单片机的组合曾是工业控制和仪器仪表领域的黄金搭档。本文将带您深入探索…...
STM32一键下载电路设计与CH340应用
STM32一键下载电路设计与实现1. 项目概述1.1 功能需求STM32系列微控制器在开发过程中,通常需要通过串口进行程序下载。传统下载方式需要手动操作BOOT0和RESET引脚,过程繁琐且容易出错。本项目设计了一种基于CH340芯片的自动下载电路,通过软件…...
