对于独立开发者或小型团队而言,快速集成第三方身份认证是一个常见的需求。它不仅提升了用户体验,也节省了自建认证系统的时间和成本。本文将手把手教你如何利用 Supabase 与 GitHub 搭建 OAuth 登录流程,整个过程主要分为三步,最终你只需在项目中添加几行代码即可实现功能。
一、在 Supabase 控制台启用 GitHub 提供者
首先,登录你的 Supabase 控制台,访问 https://supabase.com/dashboard/ 并进入你的项目。
在项目仪表盘的左侧,找到并点击 Authentication 菜单。

在打开的认证管理页面,从左侧子菜单栏中选择 Sign In / Providers。

在右侧的提供者列表中,找到 GitHub 并将其开关设置为 Enabled。

此时,页面会展开 GitHub 的具体配置项。先不要关闭此页面,复制系统生成的 Callback URL(回调地址),稍后在 GitHub 端配置时需要使用。然后点击下方的 Save 按钮保存启用状态。

二、在 GitHub 创建并配置 OAuth 应用
接下来,我们需要在 GitHub 上注册一个 OAuth App。打开开发者设置页面:https://github.com/settings/developers。
在 OAuth Apps 标签页下,点击 New OAuth app 按钮。

填写新应用的表单信息:
- Application name:填写你的应用名称,用户会在授权时看到它。
- Homepage URL:可以填写你开发环境的地址(如
http://localhost:3000),此处主要用于展示。
- Authorization callback URL:这是关键,请粘贴从上一步 Supabase 中复制的 Callback URL。

填写完毕后,点击 Register application。
应用创建成功后,页面会跳转到应用详情。在这里,你需要生成一个 Client Secret。点击 Generate a new client secret 按钮。

出于安全考虑,GitHub 可能会要求你进行二次验证(如输入邮箱验证码)。

验证通过后,请务必立即复制新生成的 Client Secret,因为页面刷新后将无法再次查看。同时,页面上方显示的 Client ID 也需要复制保存。

然后,滚动到页面底部,将之前填写的 Authorization callback URL 再次确认无误,点击 Update application 保存。

至此,GitHub 端的配置已完成。回到第一步中的 Supabase 配置页面,将刚刚获取的 Client ID 和 Client Secret 分别填入对应的输入框,最后点击 Save。

三、在项目前端代码中调用登录方法
服务配置已经全部完成。现在,你可以在你的前端项目(如 React、Vue 或原生 JavaScript)中,通过 Supabase 客户端库轻松实现登录。这里以 Supabase JavaScript 客户端为例:
首先,确保已安装并初始化 Supabase 客户端。然后,在需要触发登录的地方(例如一个按钮的点击事件),调用 signInWithOAuth 方法:
const { data, error } = await supabase.auth.signInWithOAuth({
provider: 'github',
})
就是这简单的三行代码(核心调用只有一行)。当用户点击登录按钮时,会自动跳转到 GitHub 的授权页面。
让我们看看最终效果。你的应用登录页可能会出现类似以下界面,提供“Continue with GitHub”的选项:

用户点击后,将跳转至 GitHub 标准的 OAuth 授权页面,确认授权后,页面便会回调至你指定的地址(通常是应用首页),登录流程完成。

整个过程清晰简洁,得益于 Supabase 对 OAuth 等复杂身份认证协议的封装,开发者无需深入处理令牌交换、用户信息获取等底层细节,极大提升了开发效率。如果你在配置过程中遇到问题,或在寻找更多全栈开发的最佳实践,欢迎到云栈社区与更多开发者交流探讨。