当前位置: 首页 > news >正文

Sa-Token 根据官方文档简单实现登录认证的示例

Sa-Token 根据官方文档实现登录鉴权测试

  • 功能实现步骤
    • 依赖
    • 配置文件
    • 启动类
    • 创建 controller
    • 启动项目
    • 测试
      • 不用密码登录
        • 查看cookie状态
      • 密码登录
        • 查看cookie状态
      • 修改token名称
    • Apipost 测试
    • 无 cookie 模式【使用 token】
      • 后端将 token 返回到前端
        • 修改代码:
        • 测试:
          • 访问登录接口,成功返回【token】
          • 没有携带 token 查询登录状态
          • 携带 token 查询登录状态
      • 前端将 token 提交到后端
    • 修改 token 风格和添加前缀
      • 测试

功能实现步骤

依赖

在 SpringBoot 环境集成

在这里插入图片描述

在这里插入图片描述

配置文件

直接把配置文件的东西拷贝到我们自己项目的application.yml即可

在这里插入图片描述

在这里插入图片描述

启动类

启动类我也给加个打印看看

在这里插入图片描述

在这里插入图片描述

创建 controller

创建controller ,直接把代码拷贝来修改就好了

在这里插入图片描述

在这里插入图片描述

启动项目

在这里插入图片描述

测试

不用密码登录

此时登录时失败的

在这里插入图片描述

查看cookie状态

在这里插入图片描述

密码登录

把 sa-token 放进了 cookie 里面了

在这里插入图片描述

查看cookie状态

后续就能根据cookie里面有没有satoken来判断这个用户有没有登录

在这里插入图片描述

修改token名称

token名称是在这里,我们自己定义的

在这里插入图片描述

如图,我就可以把【satoken】改名成我自己想要的名称

在这里插入图片描述

Apipost 测试

因为apipost没有cookie,此时是这样的,登录状态是false

在这里插入图片描述

然后我们再给他在 header 加上cookie参数,携带上cookie之后,登录状态就显示成功

在这里插入图片描述

无 cookie 模式【使用 token】

注意:上面是把 token 放在了 cookie 里面。

传统的 pc 形式,都是登录之后,写入 cookie。前端再次请求的时候,带着 cookie 一个身份识别就可以完成认证。
但是 【小程序、app 】是没有 cookie 这个概念的。
为了更好的扩展,我们就直接选择 token的模式。
将 token 放入 header 来实现用户身份的识别与鉴权。

在这里插入图片描述

现在我们不用 cookie,用纯 token 的方式来实现。

在这里插入图片描述

后端将 token 返回到前端

首先,在前端调用登录接口,请求登录的时候,由后端返回一个token给前端。

在这里插入图片描述

// 官网的示例
// 登录接口
@RequestMapping("doLogin")
public SaResult doLogin() {// 第1步,先登录上 StpUtil.login(10001);// 第2步,获取 Token  相关参数 SaTokenInfo tokenInfo = StpUtil.getTokenInfo();// 第3步,返回给前端 return SaResult.data(tokenInfo);
}
修改代码:

修改下controller的登录代码

在这里插入图片描述

    // 测试登录,浏览器访问: http://localhost:3011/user/doLogin?username=zhang&password=123456@RequestMapping("doLogin")public SaResult doLogin(String username, String password) {// 此处仅作模拟示例,真实项目需要从数据库中查询数据进行比对if("zhang".equals(username) && "123456".equals(password)) {// 第一步:先登录上StpUtil.login(10001);// 第二步:获取 token 相关参数SaTokenInfo tokenInfo = StpUtil.getTokenInfo();// 第三步:把 token 返回给前端return SaResult.data(tokenInfo);}return SaResult.error("登录失败");}
测试:
访问登录接口,成功返回【token】

在这里插入图片描述

没有携带 token 查询登录状态

把 cookie 删除后,查询【登录状态】,可以看到是 false

在这里插入图片描述

携带 token 查询登录状态

在这里插入图片描述

前端将 token 提交到后端

在这里插入图片描述

在这里插入图片描述

修改 token 风格和添加前缀

自定义 Token 风格

在这里插入图片描述

自定义 Token 前缀

在这里插入图片描述

在配置文件修改

在这里插入图片描述

测试

在这里插入图片描述

测试:记得前端在提交token时,前缀和token之间需要一个空格

在这里插入图片描述

如果没有,则访问不到

在这里插入图片描述

相关文章:

Sa-Token 根据官方文档简单实现登录认证的示例

Sa-Token 根据官方文档实现登录鉴权测试 功能实现步骤依赖配置文件启动类创建 controller启动项目测试不用密码登录查看cookie状态 密码登录查看cookie状态 修改token名称 Apipost 测试无 cookie 模式【使用 token】后端将 token 返回到前端修改代码:测试&#xff1…...

rustdesk编译修改名字

最近,我用Rust重写了一个2W行C代码的linux内核模块。在此记录一点经验。我此前没写过内核模块,认识比较疏浅,有错误欢迎指正。 为什么要重写? 这个模块2W行代码量看起来不多,却在线上时常故障,永远改不完。…...

BS5852英国家具防火安全条款主要包括哪几个方面呢?

什么是BS5852检测? BS5852是英国针对家用家具的强制性安全要求,主要测试家具在受到燃烧香烟和火柴等火源时的可燃性。这个标准通常分为四个部分进行测试,但实际应用中主要测试第一部分和第二部分,包括烟头测试和利用乙炔火焰模拟…...

【运维】源码编译安装cmake

背景: 已经在本地源码编译安装gcc/g,现在源码安装cmake 下载源码 下载地址:CMake - Upgrade Your Software Build System 安装步骤: ./bootstrap --prefix/usr/local/cmake make make install 错误处理 1、提示找不到libmpc.…...

检测网络安全漏洞 工具

实验一的名称为信息收集和漏洞扫描 实验环境:VMware下的kali linux2021和Windows7 32,网络设置均为NAT,这样子两台机器就在一个网络下。攻击的机器为kali,被攻击的机器为Windows 7。 理论知识记录: 1.信息收集的步骤 2.ping命令…...

frameworks 之 Activity添加View

frameworks 之 Activity添加View 1 LaunchActivityItem1.1 Activity 创建1.2 PhoneWindow 创建1.3 DecorView 创建 2 ResumeActivityItem 讲解 Activity加载View的时机和流程 涉及到的类如下 frameworks/base/core/java/android/app/Activity.javaframeworks/base/services/cor…...

UWB技术中的两种调制方式:PPM与PAM

Ultra-Wideband (UWB) 技术以其低功耗、宽频谱和高精度定位的特点,广泛应用于物联网(IoT)、智能家居、资产追踪和无线通信等领域。在UWB中,信号的调制方式对于数据传输的效率和精度起着至关重要的作用。本文将深入探讨UWB中常用的…...

达梦:用户和模式

目录标题 数据库管理系统与用户权限管理**四权分立****用户管理与权限划分****用户管理界面与权限控制****用户创建与管理****实操**1. **默认创建用户与模式**:2. **用户权限和角色分配**:3. **命令行管理用户与角色**:4. 模式也可以创建 **…...

23. AI-大语言模型-DeepSeek

文章目录 前言一、DeepSeek是什么1. 简介2. 产品版本3. 特征4. 地址链接5. 三种访问方式1. 网页端和APP2. DeepSeek API 二、DeepSeek可以做什么1. 应用场景2. 文本生成1. 文本创作2. 摘要与改写3. 结构化生成 3. 自然语言理解与分析1. 语义分析2. 文本分类3. 知识推理 4. 编程…...

Spring-GPT智谱清言AI项目(附源码)

一、项目介绍 本项目是Spring AI第三方调用整合智谱请言(官网是:https://open.bigmodel.cn)的案例,回答响应流式输出显示,这里使用的是免费模型,需要其他模型可以去 https://www.bigmodel.cn/pricing 切换…...

计算机网络(涵盖OSI,TCP/IP,交换机,路由器,局域网)

一、网络通信基础 (一)网络通信的概念 网络通信是指终端设备之间通过计算机网络进行的信息传递与交流。它类似于现实生活中的物品传递过程:数据(物品)被封装成报文(包裹),通过网络…...

云计算架构学习之Ansible-playbook实战、Ansible-流程控制、Ansible-字典循环-roles角色

一、Ansible-playbook实战 1.Ansible-playbook安装软件 bash #编写yml [rootansible ansible]# cat wget.yml - hosts: backup tasks: - name: Install wget yum: name: wget state: present #检查playbook的语法 [rootansible ansible]…...

《运维工程师如何利用DeepSeek实现智能运维:分级实战指南》

目录 智能运维革命:DeepSeek带来的范式转变DeepSeek核心运维能力全景解析分级实战场景与解决方案 3.1 初级工程师:自动化运维入门3.2 中级工程师:复杂系统诊断与优化3.3 高级工程师:架构级智能运维典型项目案例深度剖析 4.1 金融系统全链路监控体系构建4.2 电商大促资源弹性…...

windows事件倒计时器与提醒组件

widgets 这是桌面组件前端开源组件,作者称:项目还在持续完善中,目前包含键盘演示、抖音热榜、喝水提醒、生日列表、待办事项、倒计时、灵动通知、打工进度等多个组件 有vue编程能力的可以自己做组件 百度网盘 夸克网盘 桌面组件 | Ca…...

Mac OS JAVA_HOME设置

个人博客地址:Mac OS JAVA_HOME设置 | 一张假钞的真实世界 在MacOS上使用DMG文件安装了Jdk8 之后,在默认路径下找不到JDK的HOME路径: $ which java /usr/bin/java $ ls -l /usr/bin/java lrwxr-xr-x 1 root wheel 74 12 6 2015 /usr/b…...

6.3 DBMS的功能和特征

文章目录 DBMS的6大功能DBMS的3个特征DBMS的分类 DBMS的6大功能 DBMS包含数据定义,数据库操作(检索、插入、修改、删除),数据库运行管理(保证多用户环境下正常运行),数据组织、存储、管理&…...

C# ConcurrentQueue 使用详解

总目录 前言 在C#多线程编程中&#xff0c;数据共享如同走钢丝——稍有不慎就会引发竞态条件&#xff08;Race Condition&#xff09;或死锁。传统Queue<T>在并发场景下需要手动加锁&#xff0c;而ConcurrentQueue<T>作为.NET Framework 4.0 引入的线程安全集合&a…...

python脚本文件设置进程优先级(在.py文件中实现)

在 Python 代码中可以直接通过 psutil 模块或 系统调用 来设置进程优先级&#xff0c;无需依赖终端命令。以下是具体方法和示例&#xff1a; 1. 使用 psutil 模块&#xff08;跨平台推荐&#xff09; psutil 是一个跨平台库&#xff0c;支持 Windows、Linux 和 macOS。通过其 …...

基于Django快递物流管理可视化分析系统(完整系统源码+数据库+详细开发文档+万字详细论文+答辩PPT+详细部署教程等资料)

文章目录 基于Django快递物流管理可视化分析系统&#xff08;完整系统源码数据库详细开发文档万字详细论文答辩PPT详细部署教程等资料&#xff09;一、项目概述二、项目说明三、研究意义四、系统设计技术架构 五、功能实现六、完整系统源码数据库详细开发文档万字详细论文答辩P…...

el-table树状表格,默认展开第一个节点的每一层

效果如图 <template><el-table:data"tableData"style"width: 100%":tree-props"{ children: children, hasChildren: hasChildren }":expand-row-keys"expandRowKeys"row-key"id"expand-change"handleExpan…...

豆包与抖音功能联动及实测表现深度评测

① 核心参数规格与多模态能力初探 在当前的 AI 应用生态中&#xff0c;豆包与抖音的联动不仅仅是一个简单的功能叠加&#xff0c;而是底层模型能力与场景化应用的深度耦合。要理解这种联动的价值&#xff0c;首先得剥离掉营销术语&#xff0c;看看它到底“能做什么”。从技术规…...

第42篇:U-Net网络实战:医学图像分割——AI辅助诊断的基石(项目实战)

文章目录项目背景技术选型架构设计核心实现1. 数据加载与预处理2. U-Net模型定义3. 损失函数与训练循环踩坑记录效果对比项目背景 在AI辅助诊断领域&#xff0c;医学图像分割是至关重要的一步。它就像医生的“智能画笔”&#xff0c;能自动从CT、MRI等影像中勾勒出病灶区域&am…...

ACI:专为AI应用设计的轻量级容器编排框架解析与实践

1. 项目概述&#xff1a;ACI&#xff0c;一个面向AI应用的开源容器化编排框架最近在开源社区里&#xff0c;一个名为aipotheosis-labs/aci的项目引起了我的注意。乍一看这个标题&#xff0c;可能会觉得有些抽象——“ACI”是什么&#xff1f;是某种新的容器技术吗&#xff1f;和…...

Rust的#[derive(Default)]初始化策略

Rust的#[derive(Default)]初始化策略&#xff1a;简化代码的利器 在Rust中&#xff0c;初始化复杂结构体或枚举时&#xff0c;手动实现Default trait可能显得繁琐。而#[derive(Default)]宏则提供了一种自动化解决方案&#xff0c;让开发者能够轻松为类型生成默认值。这一特性不…...

VS Code Dev Container 构建耗时超8分钟?实测对比12种优化方案,最快降至22秒(附可复用docker-compose.yml模板)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;VS Code Dev Container 构建耗时超8分钟&#xff1f;实测对比12种优化方案&#xff0c;最快降至22秒&#xff08;附可复用docker-compose.yml模板&#xff09; Dev Container 构建缓慢是团队协作开发中…...

终极B站字幕下载指南:如何轻松获取和转换CC字幕文件

终极B站字幕下载指南&#xff1a;如何轻松获取和转换CC字幕文件 【免费下载链接】BiliBiliCCSubtitle 一个用于下载B站(哔哩哔哩)CC字幕及转换的工具; 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle 你是否经常在B站观看精彩的教学视频&#xff0c;想…...

基于策略模式与异步编排的抖音批量下载解决方案:实现高效内容采集的技术深度解析

基于策略模式与异步编排的抖音批量下载解决方案&#xff1a;实现高效内容采集的技术深度解析 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, a…...

FPGA新手避坑指南:用Verilog在Spartan-6上搞定IS62LV256 SRAM读写(附完整代码)

FPGA实战&#xff1a;Spartan-6与IS62LV256 SRAM的Verilog高效驱动手册 第一次接触FPGA片外SRAM时&#xff0c;我盯着开发板上那个小小的IS62LV256芯片发呆了半小时——数据手册上密密麻麻的时序参数、三态总线的双向控制、状态机的精确跳转条件&#xff0c;每一个环节都可能成…...

【仅限头部金融级用户知晓】Java 25 ZGC 2.0生产调优白皮书(含JFR采样模板与火焰图标注规范)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Java 25 ZGC 2.0 生产调优白皮书导论 ZGC 2.0 是 Java 25 中面向超低延迟场景的下一代垃圾收集器重大演进&#xff0c;其核心目标是将 GC 停顿时间稳定控制在 **1ms 以内**&#xff08;P99 ≤ 0.8ms&am…...

太原风电设备运输

在“双碳”目标引领下&#xff0c;我国风电产业迎来爆发式增长。风电设备&#xff08;如叶片、机舱、塔筒&#xff09;因其超长、超重、超宽的物理特性&#xff0c;对物流运输提出了极高要求。作为大件运输领域的专业服务商&#xff0c;太原重卡叔叔运输有限公司&#xff08;地…...