身份验证:登录之后,服务器怎么一直认得你?
登录成功后问题才刚刚开始认证通过之后真正的问题才出现下一次 HTTP 请求到来的时候服务器怎么知道它仍然来自刚才已经认证的hzh为什么 HTTP 会有这个问题场景是这样的hzh输入账号密码登录商城服务器核验成功后返回“登录成功”。五分钟后hzh请求/orders。问题在于第二次请求在应用层面是一次独立请求。即使底层连接可能被复用服务器也不会自动知道这个请求还属于刚才登录的用户。除非请求带上某种可验证的信息证明它和第一次登录建立的身份有关。所以一个完整的机制通常是客户端提交认证材料例如密码。服务端验证认证材料。服务端签发后续请求要用的凭据。客户端在每个需要身份的请求中携带该凭据。服务端验证凭据并恢复或确认用户身份。服务端再根据身份、资源和操作判断权限。登录时完成的是“你是谁”的认证后续请求一般不需要重新输密码而是通过验证凭据来确认这个请求是否仍然代表刚才认证过的用户。换句话说认证建立了身份后续凭据维持了请求 - 身份之间可信的关联。一个可验证的凭据至少要具备三种能力身份关联能关联到hzh。可验证性攻击者不能随便编造一个值就冒充hzh。时效控制过期或退出登录后应该能够失效。Cookie Session最经典的方案那我们用什么来维持这个身份一个经典方案是Cookie Session。这里先记住一句话Cookie 负责携带Session 负责记录。Cookie 是浏览器携带数据的一种机制Session 则是服务端保存的会话状态。它们配合起来才能完成登录态的维持。一个完整的请求流程1. 登录用户提交账号密码服务端验证通过后创建一条 Session例如session_7f3...。把它和用户身份、过期时间等信息存到服务端。把 Session ID 通过Set-Cookie发给浏览器。2. 之后查看订单浏览器之后访问/orders时会自动带上 Cookie 中的sid。服务端用这个sid查找 Session找到对应用户后才知道请求来自谁。需要注意Cookie 本身不是认证机制。它只是浏览器自动携带数据的方式。Session 也不必放在单台应用内存中。有多台后端服务器时可以把 Session 放到 Redis 等共享存储否则第一次请求落到服务器 A第二次落到服务器 BB 就查不到登录状态。认证成功后应该重新生成 Session ID。否则攻击者如果提前让用户带上一个已知 Session ID就可能在用户登录后利用它冒充用户这叫会话固定攻击。Session ID 必须具有足够高的随机度。服务器不相信 Cookie 里自称的用户而是用这个随机 ID 查找自己保存的记录。所以可以做到删除服务端的 session_7f3... - 浏览器发送旧 Cookie - 服务端查不到有效会话 - 登录失效退出登录时发生什么如果用户退出登录后浏览器意外又发送了旧的sid服务端该怎么处理用户请求POST /logout携带sidsession_7f3...。服务端删除或标记session_7f3...失效。服务端通过Set-Cookie指示浏览器删除 Cookie这是辅助动作。旧sid再出现时服务端查不到有效 Session返回401 Unauthorized。真正让旧凭据失效的关键是第 2 步服务端不再认可这条 Session。浏览器是否成功删掉 Cookie不能作为唯一依赖。Token、Session 和 JWT 到底是什么关系说到“后续请求带的凭据”经常会遇到Token和JWT。Token是“后续请求可出示的凭据”这一类东西JWT是 Token 可能采用的一种具体数据格式。Session ID 本身也可以看成一种 Token。它只是一串随机值具体身份信息在服务端保存。所以Token 和 JWT 不是两个平级的认证方案而是“类别”和“一种具体实现”的关系。先别急着把 Token 和 JWT 当成两个对立选项。它们更像是“凭据”与“凭据格式”的关系。接下来可以从两个角度看凭据由谁保存身份信息以及服务端收到凭据后如何验证它。两种常见的 Token 设计1. 不透明 TokenOpaque Token客户端: r4nd0m-long-secret 服务端: token - { userId: alice, expiresAt, scopes }不透明 Token 的结构本身没有业务意义。它和 Session ID 很像服务端需要通过 Token 查询状态才能知道它代表谁、有没有过期、能做什么。优点是服务端可以随时吊销它代价是每次验证通常都需要查状态。2. JWT客户端: header.payload.signature 服务端: 验签并校验声明 - 读取受信任的声明JWT 的 Payload 可以包含例如{ sub: hzh, exp: 12345678910, scope: orders:read }服务端验证 JWT 时除了验签还需要检查允许的签名算法以及exp、iss、aud等声明是否符合预期。全部通过后服务端才能信任其中的身份和权限信息。签名能证明这些声明是持有对应密钥的一方签发的且传输途中没有被篡改。但必须注意JWT 的Base64URL 编码不是加密。普通签名 JWT 的内容拿到它的人通常都能解码查看。签名提供的是完整性和来源验证不是保密性。所以不要把密码、银行卡号等特别敏感的信息放进 JWT Payload。JWT 也不是天然“无状态”或更安全如果要立刻吊销某个 JWT、强制用户下线服务端通常仍需要维护黑名单、版本号或其他状态。它一旦被窃取也可能在过期前被冒用。Cookie 和 Token 并不冲突Cookie 和 Token 并非互斥关系它们解决的问题不同Cookie / Authorization Header凭据怎样从客户端到服务端。Session ID / Opaque Token / JWT凭据具体是什么以及服务端怎样验证它。例如JWT 可以放在AuthorizationHeader 中也可以放在 Cookie 中Session ID 通常放在 Cookie 中。选择哪种方式时还要结合浏览器自动携带 Cookie、CSRF 风险、XSS 风险和具体业务场景来判断。总结可以把整件事记成一句话认证解决“你是谁”授权解决“你能做什么”Session 或 Token 解决“后续请求如何证明它还是你”。无论选择 Cookie Session、不透明 Token 还是 JWT核心都一样让服务器能够安全地验证请求携带的凭据并据此恢复用户身份再决定是否允许这次操作。

相关新闻

为什么今天的光学研发,离不开多种仿真软件?

为什么今天的光学研发,离不开多种仿真软件?

很多光学研发团队都有一个相似的工作场景。设计成像系统时,使用一套软件。分析薄膜时,切换到另一套软件。遇到微纳结构、光栅或超构表面,又需要电磁场求解工具。进入杂散光、照明、偏振、激光传播或者热结构分析阶段,还要继续增加…

2026/7/31 1:35:31阅读更多 →
C++快速排序实现详解:从原理到优化与实战避坑指南

C++快速排序实现详解:从原理到优化与实战避坑指南

1. 项目概述:为什么是快速排序? 如果你写过C,或者刷过LeetCode,排序算法绝对是你绕不开的一道坎。在众多排序算法里,快速排序(Quick Sort)的地位非常特殊——它名字里带“快速”,实际…

2026/7/31 1:35:31阅读更多 →
低代码开发平台核心架构与最佳实践指南

低代码开发平台核心架构与最佳实践指南

1. 低代码开发平台的定义与核心价值低代码开发平台(Low-Code Development Platform)是一种通过可视化界面和少量编码即可快速构建应用程序的开发环境。它本质上是对传统编码方式的抽象和封装,将常见的业务逻辑、数据模型和用户界面组件化&…

2026/7/31 1:35:31阅读更多 →
【2026年百度暑期实习/秋招- 7月30日-后端AI Coding-第二题- 余数游走】(题目+思路+JavaC++Python解析+在线测试)

【2026年百度暑期实习/秋招- 7月30日-后端AI Coding-第二题- 余数游走】(题目+思路+JavaC++Python解析+在线测试)

题目内容 给定一个长度为 nnn 的整数序列 a1,a2,…,ana_1,a_2,\dots,a_na

2026/7/31 2:44:36阅读更多 →
Docker 超全基础操作速查手册|镜像 / 容器 / 数据卷常用命令汇总

Docker 超全基础操作速查手册|镜像 / 容器 / 数据卷常用命令汇总

Docker 是当下后端、运维开发必备的容器化工具,日常开发、服务器部署几乎离不开镜像拉取、容器启停、数据持久化等基础操作。很多新手刚接触时容易混淆各类命令参数,每次使用都要翻文档。本文整理 Docker 三大核心模块:镜像 Image、容器 Cont…

2026/7/31 2:44:36阅读更多 →
学习嵌入式的第10天

学习嵌入式的第10天

1. 函数传参函数传参就是:主函数把“数据”丢给子函数干活。 数组传参传的是地址,子函数改数组,主函数数组直接变,相当于共用一块地盘。 普通变量传参传的是复印件,子函数随便改,主函数原版不动。void函数&…

2026/7/31 2:44:36阅读更多 →
2026年,解读矩阵供应商声誉背后的秘密与行业变革真相

2026年,解读矩阵供应商声誉背后的秘密与行业变革真相

当你走进任何一个现代化的指挥中心、调度大厅或安防监控室,那块巨大的、显示着无数关键信息的屏幕墙,无疑是整个空间最核心的“大脑”。而驱动这个“大脑”高效运转的“心脏”究竟是什么?答案是:视频解码矩阵。这个听起来有些专业…

2026/7/31 2:44:36阅读更多 →
当工业 AI 遇上 LLM Agent:RAG、MCP 与多 Agent 如何进入生产现场

当工业 AI 遇上 LLM Agent:RAG、MCP 与多 Agent 如何进入生产现场

LLM 应该加在工业系统的哪一层? 工业系统最怕的不是模型不够聪明,而是把不确定性放错位置。PLC、SIS、SCADA、MES 和专用算法承担的是确定性控制、实时响应与稳定运行;LLM 更适合进入它们之上的语义、认知与协同层:理解人的问题&…

2026/7/31 2:44:36阅读更多 →
2026论文隐藏级降AI率工具大曝光:三步直降AIGC率至安全阈值!

2026论文隐藏级降AI率工具大曝光:三步直降AIGC率至安全阈值!

2026年的学术圈,已经彻底告别了“只要降重就能过关”的旧时代。如今的论文审查标准像被施了魔法一样不断升级,从最初的查重率管控,到现在全面引入AIGC检测系统,整个评审机制变得比以往任何时候都要严苛。不少学生发现,…

2026/7/31 2:42:36阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/30 15:03:16阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/30 12:22:27阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/30 15:13:02阅读更多 →
物理复制比逻辑复制好在哪?数据库复制原理详解

物理复制比逻辑复制好在哪?数据库复制原理详解

数据库复制是把主库数据同步到备库的机制,分为逻辑复制和物理复制两种。逻辑复制传输的是 SQL 语句或行变更事件,物理复制传输的是存储引擎底层的物理日志。阿里云 PolarDB(云原生数据库)采用物理复制,在同步延迟、数据…

2026/7/31 0:00:40阅读更多 →
BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…

2026/7/31 0:00:41阅读更多 →
有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

当前,游戏行业的“DataAI融合”已从概念验证进入价值落地阶段。根据IDC 2025年数据,中国AI游戏云市场规模已达18.6亿元;同时,游戏研发环节AI渗透率高达86%,生成式AI内容普及率超过50%。面对庞大的市场,游戏…

2026/7/31 0:00:41阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/31 0:49:33阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/30 4:47:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/30 15:43:46阅读更多 →