Repolode
supabase

supabase/auth

基于 Go 的认证与用户管理服务,负责签发 JWT,是 Supabase Auth 的底层服务。

可替代:Auth0Firebase Authentication

Star
2,593
Fork
802
未关闭 Issue
399
最近提交
15小时前

这是什么?

Auth 是用 Go 编写的用户管理与认证服务。它负责用户注册和登录,签发 JWT 访问令牌与刷新令牌,并为 Supabase 提供身份层,支撑与 PostgREST 配合使用的行级安全(Row Level Security)等功能。支持的登录方式包括邮箱密码、魔法链接、手机号验证码,以及 Google、Apple、GitHub、Discord 等第三方 OAuth 提供商。

服务通过以 GOTRUE_ 为前缀的环境变量配置,基于 PostgreSQL 运行,启动时自动执行数据库迁移。它还提供管理员接口用于管理用户和生成操作链接,支持确认、找回密码、邀请等邮件模板,可选的验证码校验,以及带重用检测的刷新令牌轮换,并支持 OpenTelemetry 链路追踪与指标导出。项目fork 自 Netlify 的 GoTrue,两者在功能上已有明显分化。

该项目设计为独立运行的服务而非 Go 库,建议部署在支持 TLS 的反向代理之后,且不要修改其管理的数据库结构。

核心功能

  • 01签发 JWT 访问令牌与刷新令牌,支持刷新令牌轮换与重用检测
  • 02支持邮箱密码、魔法链接、手机验证码和匿名登录
  • 03集成 Google、Apple、GitHub、Discord 等多个 OAuth 提供商
  • 04提供管理员接口,用于创建、更新、封禁用户并生成操作链接
  • 05可自定义确认、找回密码、邀请及各类通知邮件模板
  • 06支持通过 OpenTelemetry 导出链路追踪,并支持 Prometheus 指标

适用场景

  • 为 Supabase 项目或自托管的 Supabase 环境添加用户账号与第三方登录
  • 签发 JWT,供基于 PostgreSQL 的 API 做行级访问控制
  • 部署自托管的认证服务,支持邮箱、手机号和 OAuth 登录

快速上手

  1. 1

    在 Postgres 容器中启动本地数据库

    docker-compose -f docker-compose-dev.yml up postgres
  2. 2

    构建 auth 可执行文件

    make build
  3. 3

    运行 auth 可执行文件

    ./auth

使用前须知

  • 生产环境运行需要自行建立及时更新安全补丁的流程,README 建议改用托管的 Supabase Auth。
  • 不适合作为 Go 库使用,且不保证 Go API 的向后兼容性。
  • 从 Netlify 继承的部分功能(如多租户和超级管理员)可能会在未经通知的情况下被移除。

收录于专题

标签

常见问题

auth 是什么?
基于 Go 的认证与用户管理服务,负责签发 JWT,是 Supabase Auth 的底层服务。 Auth 是用 Go 编写的用户管理与认证服务。它负责用户注册和登录,签发 JWT 访问令牌与刷新令牌,并为 Supabase 提供身份层,支撑与 PostgREST 配合使用的行级安全(Row Level Security)等功能。支持的登录方式包括邮箱密码、魔法链接、手机号验证码,以及 Google、Apple、GitHub、Discord 等第三方 OAuth 提供商。
auth 可以免费使用吗?用的什么许可证?
auth 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
auth 还在维护吗?
活跃维护中。auth 最近一次提交是在 2026年11月5日。
auth 适合用来做什么?
为 Supabase 项目或自托管的 Supabase 环境添加用户账号与第三方登录 签发 JWT,供基于 PostgreSQL 的 API 做行级访问控制 部署自托管的认证服务,支持邮箱、手机号和 OAuth 登录
auth 怎么安装和运行?
在 Postgres 容器中启动本地数据库: docker-compose -f docker-compose-dev.yml up postgres 构建 auth 可执行文件: make build 运行 auth 可执行文件: ./auth
在哪里获取 auth?
源代码和安装说明在 GitHub 上:https://github.com/supabase/auth

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目