news 2026/5/28 4:27:13

颠覆认知!为什么“发 Token”其实是「授权」而不是「认证」?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
颠覆认知!为什么“发 Token”其实是「授权」而不是「认证」?

🤯 颠覆认知!为什么“发 Token”其实是「授权」而不是「认证」?

👋嗨,开发者们!

在做登录功能时,我们经常听到这两个词:Authentication(认证)Authorization(授权)

很多人(包括曾经的我)都潜意识地认为:“登录就是认证,Token 是登录成功的产物,所以发 Token 也是认证的一部分。”

🛑打住!这个理解其实是不准确的。

今天我们来聊聊一个架构设计中的冷知识:为什么颁发 Token(令牌)这个动作,在本质上属于「授权」?🚀


🕵️‍♂️ 一、 认证 vs 授权:傻傻分不清楚?

首先,我们用一个“去公司大楼上班”的例子来彻底厘清这两个概念:

1️⃣ 认证 (Authentication) = 验明正身 🆔

  • 场景:你走到大门口,保安大叔拦住你:“你谁啊?”
  • 动作:你掏出身份证,或者刷脸。保安核对照片和本人,确认你是“张三”。
  • 核心问题你是谁?(Who are you?)
  • 代码对应checkPassword(username, password)

2️⃣ 授权 (Authorization) = 赋予权力 💳

  • 场景:保安确认你是张三后,但他不能让你直接进去。他拿出一张门禁卡,在读写器上刷了一下(写入权限:可进 1-5 层),然后把卡递给你
  • 动作:发放门禁卡。
  • 核心问题你能干什么?(What can you do?)
  • 代码对应JwtUtil.createToken(userId, role)

💡看出来了吗?
核对身份证是“认证”,但把门禁卡(Token)递给你的那一刻,其实是在进行“授权”。因为那张卡代表了你在大楼里的权力


🛠 二、 铁证如山:看看标准协议怎么说

如果你还觉得那是咬文嚼字,我们来看看国际标准协议OAuth 2.0是怎么定义的。

在 OAuth 2.0 中,负责生成和发放 Token 的那个服务,官方名称叫:

👉Authorization Server(授权服务器)

它不叫Authentication Server,也不叫Login Server

为什么?
因为 Token(特别是 JWT)的本质就是一份“授权书”
当你把 Token 发给客户端时,你的潜台词是:

📢“我授权持有这个 Token 的人,代表用户 ID: 10086,在未来 2 小时内,访问我的资源服务器。”


💻 三、 代码视角的“解剖”

在我们的 Java / Go / Node.js 代码中,一个所谓的login接口,其实通常原子化地执行了两个步骤

publicStringlogin(Stringusername,Stringpassword){// 🔥 步骤 1:认证 (Authentication)// 这一步只负责判断真假,不产生 TokenUseruser=userRepo.findByName(username);if(!passwordEncoder.matches(password,user.getPassword())){thrownewAuthenticationException("密码错误!");}// ✨ 步骤 2:授权 (Authorization)// 这一步负责打包权限,生成令牌// 这里的动作是:系统授予了用户访问 API 的凭证Stringtoken=JwtUtil.createToken(user.getId(),user.getRole());returntoken;}
  • 步骤 1结束时,系统只是知道了“你是张三”。
  • 步骤 2结束时,系统才赋予了张三“通行权”。

🧠 四、 为什么区分这个很重要?

你可能会问:“反正都是写在一个接口里,分那么细有啥用?” 🤔

微服务中台架构中,这个区别至关重要:

  1. 架构解耦🧩
    • 统一认证中心 (IAM)可能只负责验密码(认证)。
    • 业务系统可能需要根据认证结果,自己发放特定业务的 Token(授权)。
  2. 理解 OIDC🌐
    • OIDC (OpenID Connect)协议之所以存在,就是因为 OAuth 2.0 只管授权(发 Token),不管身份。OIDC 补上了 ID Token,才把“认证”和“授权”完美结合起来。
  3. 安全模型🛡️
    • 理解了 Token 是授权,你就明白了为什么Token 泄露 = 权限被盗。因为捡到门禁卡的人,拥有和你一样的权力!

📝 总结

下次面试或者做架构设计时,请记住这个公式:

  • 验证账号密码➡️认证 (Authentication)👮
  • 颁发 Token➡️授权 (Authorization)🔑
  • 校验 Token➡️鉴权 (Access Control)🚧

发 Token 就是在发权力,所以它绝对是授权!


觉得有道理吗?欢迎点赞、评论交流!👇
#编程知识 #架构设计 #OAuth2 #JWT #认证与授权

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/20 15:02:25

AI智能生成微信红包封面工具 | 一键制作个性化红包封面系统源码

AI微信红包封面生成器源码是一款开源的微信红包封面生成工具,由前腾讯微信后台开发工程师「idoubi」开发并开源。项目名为“AI Cover”,旨在利用人工智能技术为用户提供个性化的微信红包封面生成服务。支持用户登录、付费方案和积分系统,提供…

作者头像 李华
网站建设 2026/5/23 18:58:02

5 款 AI 写论文哪个好?实测后发现:虎贲等考 AI 凭这 3 点碾压同类

在学术写作数字化转型的浪潮中,无数科研人、学子被 “文献难寻、数据失真、格式混乱、查重焦虑” 等痛点困扰。虎贲等考 AI 智能写作平台(官网:https://www.aihbdk.com/)应势而生,作为一款深度融合前沿人工智能技术的专…

作者头像 李华
网站建设 2026/5/23 21:05:08

利用Snyk发现与修复漏洞:守护软件安全,保障业务稳定

利用Snyk发现与修复漏洞:守护软件安全,保障业务稳定 作为一名开发者,代码的安全性和稳定性对我们保持理智至关重要。当代码不稳定或容易出错时,修复起来会令人沮丧且耗时,导致不知所措和心力交瘁的感觉。 这就是Snyk的…

作者头像 李华
网站建设 2026/5/24 6:58:42

搞一个免费10年的二级域名,公网访问飞牛NAS

有小伙伴想找一个免费的域名,但是最后还是自己买了一个。域名这个东西本身应该是无限多的,但是为啥还要花钱购买呢?嗯…… 所以,今天咱们搞一个免费的二级域名,足够使用就好。免费期限似乎是10年。 正文开始 目录导航…

作者头像 李华
网站建设 2026/5/20 19:41:34

核电站反应堆数字孪生 + 大模型:安全状态监测与风险预警技术

点赞、关注、收藏,不迷路 核电站反应堆作为核电装备的核心核心,是集高温高压、强放射性、多物理场耦合、运行工况复杂于一体的精密系统,其安全稳定运行直接关系到核电项目的生产安全与周边生态安全。传统反应堆安全状态监测与风险预警模式存在…

作者头像 李华