第 4 章 · 身份认证(Auth)


文档摘要

第 4 章 · 身份认证(Auth) 章节摘要:Supabase Auth 提供邮箱密码、第三方 OAuth、Magic Link(魔法链接)、手机验证码、匿名登录等多种认证方式,并通过 JWT 令牌与会话管理维持登录态,且与数据库中的用户表深度集成。本章梳理认证体系的全貌、各类登录方式的适用场景、令牌与会话机制,以及用户管理与多因素认证。掌握本章,你就拥有了一套完整的用户身份体系,并为第 5 章的行级安全策略(RLS)打下身份基础。

第 4 章 · 身份认证(Auth)

章节摘要:Supabase Auth 提供邮箱密码、第三方 OAuth、Magic Link(魔法链接)、手机验证码、匿名登录等多种认证方式,并通过 JWT 令牌与会话管理维持登录态,且与数据库中的用户表深度集成。本章梳理认证体系的全貌、各类登录方式的适用场景、令牌与会话机制,以及用户管理与多因素认证。掌握本章,你就拥有了一套完整的用户身份体系,并为第 5 章的行级安全策略(RLS)打下身份基础。

学习目标

阅读本章后,你将能够:

  • 区分认证(Authentication)与授权(Authorization)
  • 说明各类登录方式的原理与适用场景
  • 理解 JWT 令牌、刷新令牌与会话的生命周期
  • 管理用户信息与配置多因素认证提升安全性

本章概览

数据本身是中性的,真正让它「有意义」的是使用它的人。身份认证解决「你是谁」的问题——它是所有个性化、权限隔离与安全控制的前提。Supabase Auth 的特别之处在于:用户数据就存放在数据库的专用用户表中,这使得认证与业务数据天然关联,也让第 5 章的 RLS 能够基于用户身份精确控制数据访问。

下图展示了从用户发起登录,到令牌签发,再到携带令牌访问受保护资源的完整链路。

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 420" font-family="Microsoft YaHei, Arial, sans-serif"> <rect width="760" height="420" fill="#f6f8fb"/> <text x="380" y="34" text-anchor="middle" font-size="20" font-weight="700" fill="#1f2937">多端登录与令牌鉴权流程</text> <!-- 客户端 --> <rect x="30" y="180" width="120" height="70" rx="10" fill="#ffffff" stroke="#3ecf8e" stroke-width="1.6"/> <text x="90" y="210" text-anchor="middle" font-size="13" font-weight="700" fill="#1f2937">客户端</text> <text x="90" y="230" text-anchor="middle" font-size="11" fill="#6b7280">Web / App / 小程序</text> <!-- Auth 服务 --> <rect x="230" y="80" width="150" height="80" rx="10" fill="#3ecf8e" stroke="#2c8a63" stroke-width="1.6"/> <text x="305" y="112" text-anchor="middle" font-size="14" font-weight="700" fill="#ffffff">Supabase Auth</text> <text x="305" y="134" text-anchor="middle" font-size="11" fill="#eafff5">校验凭证</text> <text x="305" y="150" text-anchor="middle" font-size="11" fill="#eafff5">签发 JWT 令牌</text> <!-- 用户表 --> <rect x="430" y="80" width="150" height="80" rx="10" fill="#ffffff" stroke="#3ecf8e" stroke-width="1.6"/> <text x="505" y="112" text-anchor="middle" font-size="14" font-weight="700" fill="#1f2937">用户表</text> <text x="505" y="134" text-anchor="middle" font-size="11" fill="#6b7280">auth.users</text> <text x="505" y="150" text-anchor="middle" font-size="11" fill="#6b7280">id / email / 元信息</text> <!-- 业务数据 --> <rect x="430" y="270" width="150" height="80" rx="10" fill="#ffffff" stroke="#3ecf8e" stroke-width="1.6"/> <text x="505" y="302" text-anchor="middle" font-size="14" font-weight="700" fill="#1f2937">业务数据表</text> <text x="505" y="324" text-anchor="middle" font-size="11" fill="#6b7280">orders / posts 等</text> <text x="505" y="340" text-anchor="middle" font-size="11" fill="#6b7280">含 user_id 关联</text> <!-- 鉴权校验 --> <rect x="230" y="270" width="150" height="80" rx="10" fill="#eafff5" stroke="#3ecf8e" stroke-width="1.6"/> <text x="305" y="302" text-anchor="middle" font-size="13" font-weight="700" fill="#1f2937">请求鉴权</text> <text x="305" y="324" text-anchor="middle" font-size="11" fill="#6b7280">解析 JWT</text> <text x="305" y="340" text-anchor="middle" font-size="11" fill="#6b7280">结合 RLS 放行</text> <!-- 箭头 --> <defs> <marker id="ar" markerWidth="9" markerHeight="9" refX="7" refY="3" orient="auto"> <path d="M0,0 L7,3 L0,6 z" fill="#374151"/> </marker> </defs> <g stroke="#374151" stroke-width="1.6" fill="none"> <path d="M 150 200 L 230 130" marker-end="url(#ar)"/> <text x="178" y="158" font-size="11" fill="#374151">1. 登录凭证</text> <path d="M 380 120 L 430 120" marker-end="url(#ar)"/> <text x="395" y="112" font-size="11" fill="#374151">2. 查/写用户</text> <path d="M 305 160 L 305 270" marker-end="url(#ar)" stroke-dasharray="5 3"/> <text x="312" y="220" font-size="11" fill="#374151">3. 签发 JWT</text> <path d="M 150 230 L 230 300" marker-end="url(#ar)"/> <text x="178" y="282" font-size="11" fill="#374151">4. 携带令牌访问</text> <path d="M 380 310 L 430 310" marker-end="url(#ar)"/> <text x="395" y="302" font-size="11" fill="#374151">5. 读写数据</text> </g> </svg>

子章节导航

本章按「理念 → 方式 → 机制 → 管理」组织:

  1. 身份认证体系概览:先讲清认证与授权的区别,建立正确概念框架。
  2. 登录方式与会话机制:逐一介绍邮箱密码、OAuth、Magic Link、匿名登录等方式。
  3. 令牌机制与会话管理:深入 JWT、刷新令牌与登录态维护。
  4. 用户管理与多因素认证:管理用户信息与用 MFA 提升安全性。

建议按顺序学习,前三节构成认证的主干,第四节是进阶管理内容。

与后续章节的关联

本章是第 5 章(RLS)的直接前提——行级安全策略正是基于本章建立的用户身份来判定「这一行能不能给你看」。同时,认证状态也影响第 6 章 Realtime 的订阅权限与第 7 章 Storage 的文件访问控制。可以说,身份认证是 Supabase 安全体系的起点。


发布者: 作者: 灏天文库 转发
评论区 (0)
U