Sa-Token 前端提交 Bearer 前缀 Token 导致鉴权失败怎么配置 token-prefix?
Sa-Token 前端提交 Bearer 前缀 Token 导致鉴权失败怎么配置 token-prefix【免费下载链接】Sa-Token✨ 开源、免费、一站式 Java 权限认证框架让鉴权变得简单、优雅—— 登录认证、权限认证、分布式 Session 会话、微服务网关鉴权、SSO 单点登录、OAuth2.0 统一认证、jwt 集成、API Key 秘钥授权、API 参数签名项目地址: https://gitcode.com/GitHub_Trending/sa/Sa-Token如果你的前端在提交 Token 时带了Bearer这样的固定前缀例如{ satoken: Bearer xxxx-xxxx-xxxx-xxxx }后端不做任何特殊处理时Sa-Token 会把Bearer视为 Token 的一部分无法正常读取 Token 信息登录校验直接失败抛出NotLoginException未能读取到有效Token。官方排查文档把这种情况列为该异常的可能4前端提交了 Token但是 Token前缀 不对解决办法就是配置token-prefix。这篇文章给出完整的配置方法、Cookie 模式的配套开关和配置生效的验证方式。确认是前缀问题再动手未能读取到有效Token的常见原因不止前缀一种参考 常见问题排查 中对该异常的判断列表先排除其他项可能1前端没有提交 Token最好从前端 F12 控制台看看请求参数里有 Token 吗可能2前端提交了 Token但参数名不对默认参数名是satoken可通过sa-token.token-name: satoken更改可能3配置了框架不读取该来源例如is-read-headerfalse关闭了 header 读取此时从 header 提交 Token 框架就读不到可能4前端提交了 Token但 Token 前缀不对——即本文场景参考 Token 提交前缀可能5前后端分离架构下浏览器默认不自动提交 Cookie参考 前后端分离可能6、可能7Nginx 反向代理吞掉带下划线的自定义 header 名或跨域导致前端提交不上 Token。如果确认前端确实以Bearer开头提交 Token、参数名和读取来源都正常那就是前缀没有配置进入下面的步骤。配置 token-prefix在application.yml中添加sa-token: # 指定 token 提交时的前缀 token-prefix: Bearer如果使用application.properties# token前缀 sa-token.token-prefixBearer配置后Sa-Token 在读取 Token 时会裁剪掉Bearer成功获取xxxx-xxxx-xxxx-xxxx这个真正的 Token 值。一个必须注意的硬约束Token 前缀与 Token 值之间必须有一个空格也就是前端必须提交Bearer xxxx-...而不是Bearerxxxx-...。核心模块中这两个配置项的默认值见 框架配置 的配置项表格tokenPrefix默认null不识别任何前缀cookieAutoFillPrefix默认false。替代方式代码配置如果项目里通过Configuration配置类写 Sa-Token 参数注意两种模式的行为差异见 框架配置模式 1Bean返回SaTokenConfig会覆盖application.yml中的配置模式 2Autowired注入SaTokenConfig后设置参数会与application.yml合并代码配置优先。如果application.yml里已写了token-prefix却不生效先检查项目里是否存在代码配置类把它覆盖掉了。Cookie 模式追加 cookie-auto-fill-prefixCookie中无法存储空格字符所以配置 Token 前缀后Cookie 模式将会失效无法成功提交带有前缀的 token。如果你的项目同时依赖 Cookie 提交 Token需要打开 Cookie 模式自动填充前缀sa-token: # 指定 Cookie 模式下自动填充 token 提交前缀 cookie-auto-fill-prefix: trueproperties 风格# 指定 Cookie 模式下自动填充 token 提交前缀 sa-token.cookie-auto-fill-prefixtrue只用 header / body 提交 Token 的项目不需要这一项。验证配置是否生效常见问题排查 给出的配置生效性判断方法是在启动类的 main 方法里打印框架实际加载到的配置SpringBootApplication public class SaTokenApplication { public static void main(String[] args) { SpringApplication.run(SaTokenApplication.class, args); System.out.println(\n启动成功Sa-Token配置如下 SaManager.getConfig()); } }对比打印结果与application.yml确认tokenPrefix为Bearer以及需要的cookieAutoFillPrefix。若不一致按该文档给出的方向排查项目中存在代码配置覆盖了application.yml中的配置配置文件名字错误SpringBoot 项目正常应为application.yml或application.properties配置前缀或缩进错误正确的写法是以sa-token开头、参数缩进在sa-token之下# 错误示例多加了 spring 前缀 spring: sa-token: token-name: xxx-token # 错误示例缩进不对 sa-token: token-name: xxx-token # 正确的应该是以 sa-token 开头 sa-token: token-name: xxx-token配置确认生效后前端重新提交带Bearer前缀的 Token 请求之前NotLoginException未能读取到有效Token的接口应能通过登录校验——框架读取时裁剪掉的正是Bearer这一段剩余部分即为登录时颁发的 Token。限制小结前缀与 Token 值之间必须有一个空格少空格、多空格都不符合要求中一个空格的约束配置前缀后 Cookie 模式默认失效需cookie-auto-fill-prefix: true补齐存在Bean模式的代码配置时它整体覆盖application.yml改 yml 不解决问题。完整配置项说明可继续在 框架配置 和 Token 提交前缀 两篇文档中查阅。【免费下载链接】Sa-Token✨ 开源、免费、一站式 Java 权限认证框架让鉴权变得简单、优雅—— 登录认证、权限认证、分布式 Session 会话、微服务网关鉴权、SSO 单点登录、OAuth2.0 统一认证、jwt 集成、API Key 秘钥授权、API 参数签名项目地址: https://gitcode.com/GitHub_Trending/sa/Sa-Token创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

LunaTranslator 多配置文件实战:使用 --userconfig 参数实现多实例并行与配置隔离

LunaTranslator 多配置文件实战:使用 --userconfig 参数实现多实例并行与配置隔离

LunaTranslator 多配置文件实战:使用 --userconfig 参数实现多实例并行与配置隔离 【免费下载链接】LunaTranslator 视觉小说翻译器 / Visual Novel Translator 项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslator 本指南讲解 LunaTranslator…

2026/10/25 13:19:14 阅读更多 →
INS/GPS组合导航原理与工程实践:从误差分析到滤波器调参

INS/GPS组合导航原理与工程实践:从误差分析到滤波器调参

1. 为什么非要组合——INS和GPS各自的"死穴"干惯导这行久了,我经常给新人打一个比方:INS是个学习能力很强但方向感极差的新人,能精准感知自己每一步迈了多大、转了哪个角度,却不知道自己到底在哪条街上;GPS是…

2026/11/11 9:25:42 阅读更多 →
用 GitHub Action 让 AutoAgent 自动修 Issue:OpenHands 集成实践指南

用 GitHub Action 让 AutoAgent 自动修 Issue:OpenHands 集成实践指南

用 GitHub Action 让 AutoAgent 自动修 Issue:OpenHands 集成实践指南 【免费下载链接】AutoAgent "AutoAgent: Fully-Automated and Zero-Code LLM Agent Framework" 项目地址: https://gitcode.com/GitHub_Trending/au/AutoAgent AutoAgent&…

2026/11/6 16:32:18 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/14 5:13:29 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/14 5:13:29 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/14 5:13:29 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/13 22:08:41 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/14 2:41:37 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/14 5:13:29 阅读更多 →

日新闻

周新闻

月新闻