SuperAPI AI 工具集

supabase-auth

安全与审计

查看项目

更新于 10-15 10:53

技能介绍

用途

Supabase Auth 技能用于设置和管理 Supabase 项目的身份验证功能,包括项目连接、令牌配置、登录方式以及用户管理。当需要配置 Supabase 访问权限或实现认证流程时,可使用该技能。

主要能力

  • CLI 操作:安装 Supabase CLI(npm install supabase --save-dev)、登录(supabase login)、链接项目(supabase link --project-ref <ref>)、检查状态(supabase status)。
  • 获取项目信息:通过 Dashboard → Settings → API 获取项目 URL、anon key 和 service key(默认隐藏)。
  • 环境变量配置:提供所有 Supabase 操作所需的环境变量,包括 SUPABASE_URL、SUPABASE_ANON_KEY、SUPABASE_SERVICE_ROLE_KEY(仅服务端使用,切勿暴露客户端),以及 CI/CD 管道所需的 SUPABASE_ACCESS_TOKEN、SUPABASE_DB_PASSWORD、SUPABASE_PROJECT_ID。
  • 客户端初始化:提供浏览器/客户端侧和服务端(使用 service role)的初始化代码示例。
  • 认证方法:支持邮箱/密码注册与登录、魔法链接(无密码)、OAuth 提供商(如 GitHub、Google、Discord 等)、匿名登录。
  • 会话管理:获取当前会话(本地存储快速获取或服务端验证)、监听认证状态变化(SIGNED_IN、SIGNED_OUT、TOKEN_REFRESHED、USER_UPDATED)。
  • 密码恢复:请求重置密码邮件及更新密码。
  • 管理操作(仅服务端):创建用户(可绕过邮箱确认)、删除用户、更新用户、列出用户。

使用方式

  1. 安装并登录 Supabase CLI,链接项目。
  2. 配置环境变量,区分客户端与服务端密钥。
  3. 根据场景选择认证方法,调用相应 API(如 signUp、signInWithPassword、signInWithOtp、signInWithOAuth、signInAnonymously)。
  4. 使用 getSession 或 getUser 管理会话,通过 onAuthStateChange 监听状态变化。
  5. 服务端管理操作需使用 service role key 初始化客户端。

适用场景

  • 在 Supabase 项目中配置认证流程。
  • 管理用户账户(创建、删除、更新、列表)。
  • 集成 CI/CD 管道进行自动化部署。
  • 实现多种登录方式(邮箱、魔法链接、OAuth、匿名)。

限制与安全注意事项

  • 切勿暴露 service role key,它会绕过行级安全(RLS)。
  • 服务端授权应使用 getUser(),不要信任 getSession()。
  • 角色应使用 app_metadata,user_metadata 可被用户编辑。
  • 所有表应启用 RLS,否则任何人可访问数据。
  • 更多细节可参考 auth-methods.md、session-management.md、mfa-setup.md。