找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3428

积分

0

好友

480

主题
发表于 2026-2-14 09:06:17 | 查看: 34| 回复: 0

对于独立开发者或小型团队而言,快速集成第三方身份认证是一个常见的需求。它不仅提升了用户体验,也节省了自建认证系统的时间和成本。本文将手把手教你如何利用 SupabaseGitHub 搭建 OAuth 登录流程,整个过程主要分为三步,最终你只需在项目中添加几行代码即可实现功能。

一、在 Supabase 控制台启用 GitHub 提供者

首先,登录你的 Supabase 控制台,访问 https://supabase.com/dashboard/ 并进入你的项目。

在项目仪表盘的左侧,找到并点击 Authentication 菜单。

Supabase项目侧边栏导航

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

Supabase认证提供者配置主界面

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

Supabase第三方认证提供者列表

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

Supabase中GitHub提供者配置详情

二、在 GitHub 创建并配置 OAuth 应用

接下来,我们需要在 GitHub 上注册一个 OAuth App。打开开发者设置页面:https://github.com/settings/developers

OAuth Apps 标签页下,点击 New OAuth app 按钮。

GitHub开发者设置OAuth应用页面

填写新应用的表单信息:

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

GitHub新建OAuth应用表单

填写完毕后,点击 Register application

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

GitHub OAuth应用详情页

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

GitHub二次验证界面

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

GitHub客户端密钥生成成功提示

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

GitHub更新OAuth应用信息

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

Supabase中填入GitHub的Client ID与Secret

三、在项目前端代码中调用登录方法

服务配置已经全部完成。现在,你可以在你的前端项目(如 React、Vue 或原生 JavaScript)中,通过 Supabase 客户端库轻松实现登录。这里以 Supabase JavaScript 客户端为例:

首先,确保已安装并初始化 Supabase 客户端。然后,在需要触发登录的地方(例如一个按钮的点击事件),调用 signInWithOAuth 方法:

const { data, error } = await supabase.auth.signInWithOAuth({
  provider: 'github',
})

就是这简单的三行代码(核心调用只有一行)。当用户点击登录按钮时,会自动跳转到 GitHub 的授权页面。

让我们看看最终效果。你的应用登录页可能会出现类似以下界面,提供“Continue with GitHub”的选项:

应用登录界面展示GitHub登录按钮

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

GitHub OAuth授权确认页面

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




上一篇:浅析NVIDIA Shield TV十年更新案例:安卓系统长期维护的技术与市场逻辑
下一篇:GPU渲染TUI工具MDPT:在独立窗口中运行Markdown演示,告别终端限制
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-23 12:58 , Processed in 0.993673 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表