news 2026/4/12 21:43:48

颠覆认知!为什么“发 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/4/12 15:50:35

法尔斯新闻社1398年波斯语新闻数据集_29万条_多领域分类_完整文本内容_自然语言处理_文本挖掘_机器学习训练数据_波斯语文本分类、主题建模、情感分析、命名实体识别、摘要生成等自然语言处理任务的研究

法尔斯新闻社1398年波斯语新闻数据集 引言与背景 法尔斯新闻社1398年波斯语新闻数据集是一个大规模、高质量的波斯语新闻文本数据集,收录了法尔斯新闻社在1398年(即2019-2020年)期间发布的全部新闻文章。该数据集包含294,023条新闻记录&…

作者头像 李华
网站建设 2026/4/8 22:44:59

基于MATLAB的三相方波逆变电路系统设计本设计包括设计报告(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于MATLAB的三相方波逆变电路系统设计本设计包括设计报告(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码基于MATLAB的三相方波逆变电路系统设计本设计包括设计报告 基于MATLAB的三相方波逆变电路系统设计本设计包括设计报告&…

作者头像 李华
网站建设 2026/3/27 8:57:38

好写作AI:当AI写作遇上“学术贫富差距”,我们是桥梁还是高墙?

顶尖高校的学生用AI一小时搞定文献综述,偏远地区的学生还在为知网卡顿发愁——这场面,像极了学术版的“数字鸿沟”真人秀。深夜,两间不同的宿舍里:一间的学生熟练地用AI分析着百篇外文文献,自动生成综述框架&#xff1…

作者头像 李华