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

Token:解决 Cookie+Session 痛点的新一代「身份凭证」

一、为什么会出现 Token1. Cookie Session 的天生痛点服务器压力大Session 存在服务器内存 / Redis用户越多占用越大。分布式集群麻烦必须做 Session 共享Redis 同步、IP 绑定等。跨域 / 跨端不友好Cookie 受同源策略限制APP、小程序、第三方跨域场景难用。安全风险自动携带 Cookie易受 CSRF 攻击。2. Token 要解决的核心问题服务器无状态不存用户会话信息天然支持分布式 / 跨域更安全、更灵活适合Web、APP、小程序、微服务、第三方授权二、Token 基本概念1. 什么是 TokenToken 令牌 / 凭证是服务器生成的一串加密字符串代表用户身份和权限。客户端自己保存每次请求主动带上服务器验证后即可识别身份。2. 核心特点无状态Stateless服务器不存任何 Session信息全部存在 Token 里。跨端友好不依赖 Cookie可放在 Header、Param 等任意位置。自包含Token 里可直接存用户 ID、权限、过期时间等。可加密签名防止篡改、伪造。三、Token 完整登录流程经典用户登录客户端提交用户名 密码服务器验证验证通过后生成 Token包含用户信息 签名返回 Token服务器把 Token 发给客户端客户端保存存在localStorage / sessionStorageCookie手动设置不依赖自动携带APP 本地存储后续请求客户端主动在请求头带上plaintextAuthorization: Bearer token服务器验证解析 Token → 验签名 → 查过期 → 拿到用户信息不需要查 Session/Redis基础 JWT 场景四、Token 主流实现JWT1. JWT JSON Web Token目前最标准、最常用的 Token 格式。2. JWT 结构三段式用.分隔plaintextHeader.Payload.Signature① Header头声明算法 类型示例json{ alg: HS256, typ: JWT }② Payload负载存放实际数据用户信息、过期时间等官方标准字段推荐iss签发者sub用户 IDexp过期时间iat签发时间注意Payload 只是 Base64 编码不是加密不要存密码等敏感信息。③ Signature签名保证 Token不被篡改公式plaintextSignature HMACSHA256( Base64(Header) . Base64(Payload), 服务器密钥 )只要密钥不泄露别人就无法伪造 Token。五、Token 与 Cookie/Session 核心对比面试必背表格维度Cookie SessionTokenJWT存储位置Session 存服务器信息存在客户端自身状态有状态无状态分布式支持需要共享方案Redis 等天然支持跨域 / 跨端弱受同源策略限制强支持 Web/APP/ 小程序 / 微服务性能服务器查表量大有压力直接验签无 IO性能更好CSRF 风险高自动带 Cookie低需主动携带可控制安全性依赖 Cookie 配置签名防篡改可加密失效控制服务器可直接删 Session无法主动作废只能等过期可用黑名单六、Token 的优点无状态减轻服务器存储压力天然支持水平扩展适合微服务、集群跨域跨端友好不依赖 Cookie防 CSRF不自动发送可控制来源可自包含权限适合第三方授权OAuth2七、Token 的缺点与解决方案1. 无法主动作废最大痛点Token 一旦签发只能等到期。解决方案Redis 黑名单作废的 Token 存入 Redis请求时先校验短有效期 刷新 TokenRefresh Token2. 长度比 SessionId 大每次请求携带数据稍多可忽略。3. Payload 可被解码不要存密码、手机号明文等敏感信息。八、Token 携带方式实战推荐请求头 AuthorizationplaintextAuthorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...放在 URL 参数不推荐放在 POST 参数放在自定义 Header如token: xxx九、双 Token 方案企业级常用为了解决安全和体验平衡Access Token有效期短5~30 分钟用于正常接口请求Refresh Token有效期长几天几周仅用于刷新 Access Token泄露风险相对可控流程登录 → 返回 AT RTAT 过期 → 用 RT 换新 ATRT 过期 → 重新登录十、安全最佳实践必须用 HTTPS防止 Token 被抓包窃取。签名密钥严格保密密钥泄露 所有人可伪造 Token。设置合理过期时间避免长期有效。敏感信息不放入 Payload只放用户 ID、角色不放密码。开启 Redis 黑名单支持强制下线、改密后作废旧 Token。避免存在 localStorage 被 XSS 窃取可存在HttpOnly Cookie里仍用 JWT 逻辑只是借用存储。十一、高频面试题极简答案Token 解决了 Session 什么问题无状态、天然分布式、跨端友好、降低服务器压力、防 CSRF。JWT 由哪三部分组成Header、Payload、Signature。JWT 能存密码吗不能Payload 只是 Base64 编码可解码。Token 怎么防止篡改通过签名Signature服务端验签即可判断是否被修改。Token 如何实现主动退出使用 Redis 黑名单将 Token 加入黑名单即作废。Token 比 Session 更安全吗在防 CSRF、防劫持可控性上更安全但 XSS 风险需要自己防护。十二、全文总结CookieSession有状态、服务器存储、集群麻烦、适合传统 Web。TokenJWT无状态、自包含、天然分布式、跨端神器。核心思想把 “身份凭证” 交给客户端自己保管服务器只负责验签不负责存储。现代架构前后端分离、APP、小程序、微服务 →首选 Token。

相关文章:

Token:解决 Cookie+Session 痛点的新一代「身份凭证」

一、为什么会出现 Token?1. Cookie Session 的天生痛点服务器压力大Session 存在服务器内存 / Redis,用户越多占用越大。分布式集群麻烦必须做 Session 共享(Redis 同步、IP 绑定等)。跨域 / 跨端不友好Cookie 受同源策略限制&am…...

The Riemannian Geometry of Conceptual Spaces: Behavioral Evidence for Cognitive Manifolds

《认知流形的行为证据:概念空间的黎曼几何结构》 主标题:The Riemannian Geometry of Conceptual Spaces: Behavioral Evidence for Cognitive Manifolds 副标题:A Psychometric and Computational Study 方见华 世毫九实验室 关键词&#xf…...

Z-Image-Turbo_Sugar脸部Lora企业级部署:Nginx反向代理+HTTPS安全访问配置

Z-Image-Turbo_Sugar脸部Lora企业级部署:Nginx反向代理HTTPS安全访问配置 1. 引言:从本地测试到企业级服务 如果你已经成功在本地部署了Z-Image-Turbo_Sugar脸部Lora模型,通过Gradio界面生成了漂亮的Sugar风格人像,那么恭喜你&a…...

ControlNet-v1-1 FP16模型深度解析:SD1.5兼容性与性能优化终极指南

ControlNet-v1-1 FP16模型深度解析:SD1.5兼容性与性能优化终极指南 【免费下载链接】ControlNet-v1-1_fp16_safetensors 项目地址: https://ai.gitcode.com/hf_mirrors/comfyanonymous/ControlNet-v1-1_fp16_safetensors ControlNet-v1-1_fp16_safetensors作…...

HoloCubic商业模式探索:从开源项目到商业化产品的完整转型指南

HoloCubic商业模式探索:从开源项目到商业化产品的完整转型指南 【免费下载链接】HoloCubic 带网络功能的伪全息透明显示桌面站 项目地址: https://gitcode.com/gh_mirrors/ho/HoloCubic HoloCubic是一款基于ESP32PICO-D4芯片的伪全息透明显示桌面站&#xff…...

Bounce.js 插件开发终极指南:3步打造自定义CSS3动画扩展

Bounce.js 插件开发终极指南:3步打造自定义CSS3动画扩展 【免费下载链接】bounce.js Create beautiful CSS3 powered animations in no time. 项目地址: https://gitcode.com/gh_mirrors/bo/bounce.js Bounce.js是一款强大的CSS3动画生成工具,让开…...

3个核心优势:asmr-downloader如何解决ASMR资源管理难题

3个核心优势:asmr-downloader如何解决ASMR资源管理难题 【免费下载链接】asmr-downloader A tool for download asmr media from asmr.one(Thanks for the asmr.one) 项目地址: https://gitcode.com/gh_mirrors/as/asmr-downloader 在数字音频时代&#xff0…...

TLV320音频编解码器WAV播放库设计与嵌入式实现

1. WavPlayer 库概述:面向 TLV320 系列音频编解码器的嵌入式 WAV 播放解决方案WavPlayer 是一个专为资源受限嵌入式平台设计的轻量级音频播放库,其核心目标是实现标准 PCM 编码 WAV 文件在基于 TI TLV320 系列音频编解码器(如 TLV320AIC3104、…...

BotMan附件处理终极指南:5种类型附件接收与处理技巧

BotMan附件处理终极指南:5种类型附件接收与处理技巧 【免费下载链接】botman A framework agnostic PHP library to build chat bots 项目地址: https://gitcode.com/gh_mirrors/bo/botman BotMan是一个框架无关的PHP聊天机器人库,支持处理多种附…...

长尾关键词在SEO中优化关键词策略的应用与效果分析

本文将分析长尾关键词在SEO优化中的应用与效果,强调其在提高网站流量与转化率方面的重要性。文章首先定义了长尾关键词,介绍其特征,使读者理解为何在竞争激烈的网络环境中选择使用这些关键词更为明智。接着,讨论如何有效识别和融入…...

RabbitMQ云原生持久化终极指南:Ceph与GlusterFS存储方案完全解析

RabbitMQ云原生持久化终极指南:Ceph与GlusterFS存储方案完全解析 【免费下载链接】rabbitmq-tutorials Tutorials for using RabbitMQ in various ways 项目地址: https://gitcode.com/gh_mirrors/ra/rabbitmq-tutorials 想要在云原生环境中构建可靠的Rabbit…...

解决STM32使用ST-LINK时勾选Reset and Run仍无法复位运行的调试技巧

1. 问题现象与排查思路 最近在调试STM32项目时遇到了一个奇怪的问题:使用ST-LINK烧录程序时,明明勾选了"Reset and Run"选项,但单片机就是没有任何反应。这让我一度怀疑人生——难道连最简单的LED闪烁程序都写不对了吗?…...

GraphQL Java 异常处理终极指南:深度解析 ExceptionWhileDataFetching

GraphQL Java 异常处理终极指南:深度解析 ExceptionWhileDataFetching 【免费下载链接】graphql-java GraphQL Java implementation 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-java GraphQL Java 作为主流的 GraphQL 实现框架,其异常…...

Android USB OTG相机实战指南:从设备连接到高级应用的完整解决方案

Android USB OTG相机实战指南:从设备连接到高级应用的完整解决方案 【免费下载链接】Android-USB-OTG-Camera 项目地址: https://gitcode.com/gh_mirrors/an/Android-USB-OTG-Camera 在移动设备与外部硬件交互日益频繁的今天,Android USB OTG&am…...

扩散模型如何重塑时间序列预测的未来格局

1. 扩散模型为何能颠覆时间序列预测 我第一次接触扩散模型是在2021年的一次技术分享会上。当时一位谷歌研究员展示了如何用这个技术把一张模糊的照片逐步还原成清晰图像,整个过程就像魔术一样神奇。没想到两年后,这个原本用于图像生成的技术,…...

巴菲特-芒格的电动汽车产业链投资:全面布局未来出行

巴菲特 - 芒格的电动汽车产业链投资:全面布局未来出行关键词:巴菲特;芒格;电动汽车产业链;投资布局;未来出行摘要:本文深入探讨了巴菲特和芒格在电动汽车产业链的投资策略与布局。从背景介绍入手…...

FlutterBoost持续集成终极指南:自动化测试与质量监控最佳实践

FlutterBoost持续集成终极指南:自动化测试与质量监控最佳实践 【免费下载链接】flutter_boost FlutterBoost is a Flutter plugin which enables hybrid integration of Flutter for your existing native apps with minimum efforts 项目地址: https://gitcode.c…...

自动化API版本管理:AI简化接口演进

自动化API版本管理:AI简化接口演进 关键词:自动化API版本管理、AI、接口演进、API生命周期、版本控制 摘要:本文围绕自动化API版本管理展开,深入探讨了如何利用AI技术简化接口演进过程。首先介绍了API版本管理的背景和相关概念,包括目的、预期读者等内容。接着阐述了核心概…...

Kafka-Docker与Azure AKS集成:Kubernetes服务部署终极指南

Kafka-Docker与Azure AKS集成:Kubernetes服务部署终极指南 【免费下载链接】kafka-docker Dockerfile for Apache Kafka 项目地址: https://gitcode.com/gh_mirrors/ka/kafka-docker 在现代微服务架构中,Apache Kafka作为高性能的分布式消息系统&…...

机械键盘防抖神器:告别连击烦恼的终极解决方案

机械键盘防抖神器:告别连击烦恼的终极解决方案 【免费下载链接】KeyboardChatterBlocker A handy quick tool for blocking mechanical keyboard chatter. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyboardChatterBlocker 还在为机械键盘的"连击&…...

别再手动连线了!用Tessent IJTAG的SIB和TDR,5分钟搞定复杂芯片的DFT网络分区

芯片测试革命:用Tessent IJTAG实现扫描链的智能分区与管理 在超大规模SoC设计中,测试工程师们常常陷入"连线地狱"——数以千计的扫描链需要手动连接,不同电源域的IP核需要特殊处理,而后期设计变更又会导致整个测试网络推…...

RabbitMQ消息优先级终极指南:如何实现多级队列与紧急消息处理

RabbitMQ消息优先级终极指南:如何实现多级队列与紧急消息处理 【免费下载链接】rabbitmq-tutorials Tutorials for using RabbitMQ in various ways 项目地址: https://gitcode.com/gh_mirrors/ra/rabbitmq-tutorials RabbitMQ作为一款功能强大的消息中间件&…...

桥接模式下的银河麒麟V10 SP1安装避坑手册:VMware磁盘分配与网络配置详解

银河麒麟V10 SP1在VMware桥接模式下的高效部署指南 对于需要在物理机与虚拟机混合环境中工作的开发测试人员来说,银河麒麟V10 SP1操作系统在VMware中的稳定运行至关重要。本文将深入探讨桥接模式的选择逻辑、磁盘空间优化策略以及常见硬件兼容性问题的解决方案&…...

终极Pry配色指南:如何配置256色与真彩色主题让Ruby开发更高效

终极Pry配色指南:如何配置256色与真彩色主题让Ruby开发更高效 【免费下载链接】pry A runtime developer console and IRB alternative with powerful introspection capabilities. 项目地址: https://gitcode.com/gh_mirrors/pr/pry Pry作为一款强大的Ruby运…...

Windows Defender彻底移除指南:释放系统资源,告别安全软件干扰

Windows Defender彻底移除指南:释放系统资源,告别安全软件干扰 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode…...

Kafka-Docker 元数据管理终极指南:掌握主题与分区操作技巧

Kafka-Docker 元数据管理终极指南:掌握主题与分区操作技巧 【免费下载链接】kafka-docker Dockerfile for Apache Kafka 项目地址: https://gitcode.com/gh_mirrors/ka/kafka-docker Kafka-Docker 是一个基于 Docker 的 Apache Kafka 部署解决方案&#xff0…...

Janus-Pro-7B在嵌入式AI中的轻量化部署实践

Janus-Pro-7B在嵌入式AI中的轻量化部署实践 最近在折腾一个边缘计算的项目,需要在资源受限的嵌入式设备上跑一个像样的大模型。一开始直接拿原版的Janus-Pro-7B往上怼,结果嘛,内存直接爆掉,推理速度慢得让人想打瞌睡。这让我意识…...

建议收藏|高效论文写作全流程AI论文平台推荐(2026 最新)

论文写作全流程可拆解为文献调研→选题/开题→大纲/初稿→文献综述→降重/去AI味→润色/格式→查重/投稿七大环节,以下AI论文平台按环节精准匹配,兼顾中文适配、降重能力、去AI痕迹、学术合规四大核心需求,覆盖免费/付费、通用/垂直场景。202…...

HTTP协议与Web服务器详解

目录 前言 1. HTTP协议概述 1.1 什么是HTTP 1.2 HTTP的历史 2. HTTP协议工作原理 2.1 客户端-服务器模型 2.2 请求-响应流程 2.3 HTTP的无状态特性 3. HTTP请求结构 3.1 请求行 3.2 请求头部 3.3 请求体 4. HTTP响应结构 4.1 状态行 4.2 响应头部 4.3 响应体 …...

复盘B端拓客号码核验:困境、革新与行业发展启示氪迹科技法人股东号码核验筛选系统,阶梯式价格

在B端客户拓展的全流程中,对企业核心决策层(法人、股东、董监高等)的精准触达,是提升拓客转化效率的关键前提,而核心决策人联系方式的核验与筛选,作为拓客工作的前置基础,其效率与质量直接决定了…...