news 2026/6/10 23:03:08

颠覆认知!为什么“发 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/6/10 20:55:54

收藏!2025秋招真相:IT仍是王者,AI算法岗年薪40万领跑全场

秋招战场的冰火两重天,今年格外刺眼。一边是无数毕业生为“月薪过万”辗转焦虑,投出的简历石沉大海;另一边,不少瞄准热门赛道的毕业生,早已将“年薪40万”纳入囊中之物,成为秋招里的“天选赢家”。 近日&a…

作者头像 李华
网站建设 2026/6/10 16:02:46

Therma Wave 14-004693

产品概述Therma Wave 14-004693 Rev D是用于半导体制造或检测设备的电气总成组件,通常与晶圆处理或真空系统相关。该型号可能涉及温度控制、真空环境维持或信号传输功能,具体应用取决于设备型号。功能特点晶圆处理:可能包含晶圆定位、温度监控…

作者头像 李华
网站建设 2026/6/10 16:02:17

[运营进阶] 店铺图片风格杂乱?浅析如何利用 AI 批量统一视觉规范,打造“大牌感”Listing

品牌出海 视觉营销 跨境电商 AI工具 自动化办公 图片处理前言在跨境电商从“野蛮生长”转向“品牌出海”的今天,Listing 的视觉质量 往往决定了买家对品牌的首因效应。对于拥有独立供应链的大卖来说,他们可以花费巨资统一拍摄、统一修图。但对于大多数中…

作者头像 李华
网站建设 2026/6/10 20:55:13

基于级联前向BP神经网络(CFBP)的数据回归预测及Matlab实现

基于级联前向BP神经网络(CFBP)的数据回归预测 CFBP回归 matlab代码 注:暂无Matlab版本要求 -- 推荐 2018B 版本及以上 在数据预测领域,神经网络一直是备受瞩目的工具。今天咱们来聊聊基于级联前向BP神经网络(CFBP)的数据回归预测&…

作者头像 李华
网站建设 2026/6/10 19:12:45

从零开始学 Spring Boot:小白也能轻松上手的全栈开发入门指南

从零开始学 Spring Boot:小白也能轻松上手的全栈开发入门指南 💡 一句话定位:Spring Boot 不是新语言,也不是新框架,而是一套「让 Java Web 开发像搭积木一样简单」的智能脚手架——它帮你省掉 80% 的重复配置&#xf…

作者头像 李华
网站建设 2026/6/9 23:30:58

Web自动化测试教程

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、自动化测试基本介绍1、自动化测试概述:什么是自动化测试?一般说来所有能替代人工测试的方式都属于自动化测试,即通过工具和…

作者头像 李华