本文以GitHub为例,演示如何为RDS Supabase实例配置并启用第三方认证登录功能。
背景信息
RDS Supabase支持与 GitHub、Google、微信、支付宝等主流第三方身份提供商(Identity Provider, IdP)集成,以实现OAuth认证登录。此功能允许用户使用其既有的第三方账号登录RDS Supabase应用,从而简化注册流程并提升用户体验。
关于所有支持的提供商及其详细参数配置,请参考阿里云RDS Supabase认证(Authentication)。
接下来,以GitHub为例,详细介绍如何为RDS Supabase实例配置并启用第三方认证登录。
前提条件
已创建一个可用的阿里云RDS Supabase实例。
拥有一个GitHub账号。
操作步骤
整个配置流程分为创建GitHub OAuth应用、配置RDS Supabase实例和功能验证三个主要部分。
步骤一:创建并配置GitHub OAuth Application
首先,需要在GitHub上创建一个OAuth Application,以获取用于API认证的Client ID和Client Secret。
登录GitHub,进入开发者设置页面。
在左侧导航栏选择OAuth Apps,然后单击New OAuth App。
在注册页面,填写应用信息:
Application name:根据您的应用实际情况填写。
Homepage URL:填写您的应用主页地址。
Authorization callback URL:填入您的RDS Supabase实例的外网访问地址,并附加路径
/auth/v1/callback。格式:https://<Supabase外网地址>/auth/v1/callback。说明Supabase外网地址不要带端口号。
单击Register application。
注册完成后,页面会自动跳转到应用详情页。请记录页面上显示的Client ID。
单击Generate a new client secret,生成客户端密钥。
重要GitHub的Client Secret仅在生成时完整显示一次,请务必妥善保存,后续配置将会用到。

步骤二:配置RDS Supabase认证参数
获取到GitHub OAuth App的凭证后,需要在RDS Supabase实例中配置相关参数以启用该认证方式。
进入RDS控制台首页,在左侧导航栏,单击AI 应用开发。在上方选择地域后,单击项目ID进入RDS Supabase实例详情页。
在左侧导航栏中,单击Auth配置。
点击身份验证提供商 > GitHub页面,配置以下参数:
是否启用GITHUB登录:点击启用GitHub登录。
GitHub OAuth App 的 Client ID:填入步骤一中获取的GitHub OAuth App的Client ID。
GitHub OAuth App的Client Secret:填入步骤一中获取的GitHub OAuth App的Client Secret。
授权回调地址:填入与步骤一中完全相同的Authorization callback URL。
配置完成后,单击确认。实例会自动重启以使配置生效,请耐心等待重启完成。

步骤三:配置RDS Supabase白名单
为确保您的应用能够访问RDS Supabase实例,需要将其公网IP地址添加到RDS Supabase的访问白名单中。
进入RDS控制台首页,在左侧导航栏,单击AI 应用开发。
在上方选择地域后,在RDS Supabase列表中,点击目标的项目ID进入RDS Supabase详情页。
在基本信息页的白名单信息区域,单击添加白名单分组,将目标客户端的IP地址添加到白名单中。
步骤四:允许实例访问公网
为确保RDS Supabase实例能够主动向公网上的GitHub服务器发起API请求,以完成OAuth认证流程,需要打开允许实例访问公网设置。
点击进入实例详情的基本信息页。
打开网络信息 > 允许实例访问公网按钮。

若第三方应用在海外地域,为了保证Supabase第三方认证功能的稳定性和良好体验,推荐购买海外地域的RDS Supabase实例。
步骤四:验证GitHub认证功能
完成以上配置后,可以搭建一个简单的前端项目来验证GitHub登录流程是否正常工作。
初始化项目结构
创建一个项目文件夹,并在其中包含以下文件:
index.html: 前端页面结构。main.js: 核心的认证逻辑。supabase-config.js: RDS Supabase连接配置。package.json: 项目依赖和脚本配置。
编写代码
在项目中创建以下文件并填入相应内容。
获取并配置Supabase连接信息
在运行项目前,参考RDS Supabase SDK使用指南获取Supabase的SUPABASE_URL和Anon Key,来替换
supabase-config.js文件中的url和anonKey的值。运行项目并测试
在项目根目录下打开终端,执行以下命令安装依赖,并启动服务器:
npm install npm run dev命令执行成功后,在浏览器中访问
http://localhost:5173。在页面上单击使用GitHub登录。页面将跳转至GitHub授权页。

授权成功后,页面将自动跳回,并显示从GitHub获取的用户信息(用户ID、用户名、邮箱等),表示认证成功。

验证后台数据
进入RDS控制台首页,在左侧导航栏,单击AI 应用开发。
在上方选择地域后,在RDS Supabase列表中,点击目标项目ID,进入RDS Supabase详情页。
点击网络信息 > 外网连接地址,进入Supabase的登录页面。
说明如果您使用与RDS Supabase项目在同一VPC下的ECS进行登录,建议您使用内网连接地址。
点击左侧导航栏的Authentication > Users,查看到刚刚通过GitHub登录的新用户信息,确认用户数据已成功同步至RDS Supabase。
