You need to enable JavaScript to run this app.
文档中心
AI 原生 BaaS 平台 Supabase 版

AI 原生 BaaS 平台 Supabase 版

复制全文
下载 pdf
使用 Authentication
设置 CAS 授权登录
复制全文
下载 pdf
设置 CAS 授权登录
CAS(Central Authentication Service,中央认证服务)是一种用于 Web 应用的开源单点登录(SSO)协议,核心是通过中央认证服务器实现一次登录访问多个互信系统,采用票据机制保障安全与无状态交互。​
Supabase 支持通过简单配置实现 CAS 授权登录。​
前提条件​
  • 已创建使用 Supabase 引擎的 Workspace,且该 Workspace 处于运行中状态。详细操作请参见创建 Workspace。​
  • 已获取 SUPABASE_BASE_URL、SERVICE_ROLE_KEY 和 SUPABASE_ANON_KEY。关于获取变量的详细信息,请参见获取变量。​
操作步骤​
  1. 查询和修改配置​
  1. 在 Supabase 控制台查询和修改配置​
  1. 配置 CAS 相关参数​
  • 进入页面 Authentication -> Sign In / Providers -> CAS,勾选 “Enable CAS provider”,并填入 CAS 相关参数。​
  • ​​​
  1. 配置重定向白名单​
  • 进入页面 Authentication -> URL Configurations,将您的应用的 URL (登录成功后的跳转目标,精确到 path) 配置到 Redirect URLs 中。​
  • ​​​
  • ​​​
主要配置项说明​
​
Dashobard 配置项名称​
配置项 Key​
配置项 Value 类型​
是否必填​
配置项说明​
Enable CAS provider​
EXTERNAL_CAS_ENABLED​
bool​
是​
是否开启 CAS 授权登录。取值:​
  • true:是(开关打开)​
  • false:否(开关关闭)​
CAS Server URL​
EXTERNAL_CAS_URL​
string​
是​
CAS Server 地址。取值:​
CAS Protocol Version​
EXTERNAL_CAS_VERSION​
string​
是​
CAS Server 版本。取值:​
  • 2.0:CAS 2.0 版本​
  • 3.0:CAS 3.0 版本​
Allow users without an email​
EXTERNAL_CAS_EMAIL_OPTIONAL​
bool​
是​
是否允许 CAS Response 中的 Email 字段为空。取值:​
  • false:当 Email 字段为空时,登录会报错。默认值。​
  • true:Email 字段是否为空,不影响用户登录。​
​
Email attribute key​
EXTERNAL_CAS_EMAIL_KEY​
string​
是​
CAS Response 中表示 Email 字段的 key(大小写敏感)。​
  • 默认值为 email。​
  • 如果非空,则会从 CAS Response 中提取该 key 的值将作为用户的唯一标识。​
Phone attribute key​
EXTERNAL_CAS_PHONE_KEY​
string​
否​
CAS Response 中表示 Phone 字段的 key(大小写敏感)。​
  • 默认值为""(空串)​
  • 如果非空,则会尝试从 CAS Response 中提取该 key 的值,保存作为用户的手机号。​
​
Callback URL (for OAuth)​
​
EXTERNAL_CAS_REDIRECT_URI​
string​
否​
​
CAS 回调地址,可以是以下两种之一:​
  1. Supabase Callback 接口地址 /auth/v1/callback(默认值)。 ​
  1. 开发者域名下的服务回调接口地址。注意必须要重定向到 Supabase Callback 接口地址、透传回调请求的所有参数(包括 Query Parameters、Header、Body 等)。​
Display name attribute key​
EXTERNAL_CAS_DISPLAY_NAME_KEY​
string​
否​
CAS Response 中表示用户展示名的 key(大小写敏感)。​
  • 默认值为""(空串)​
  • 如果非空,则会从 CAS Response 中提取该 key 的值,保存作为用户元信息。​
Redirect URLs​
URI_ALLOW_LIST​
string​
​
允许重定向的目标 URL 列表。​
  • 需要与跳转目标 URL 完全一致,精确到 path​
  • 多个时以逗号分隔,形如:http://www.app1.com/home,https://www.app2.com​
​
  1. 通过 Admin API 查询和修改配置​
  • 查询配置的示例​
​
curl -X GET $SUPABASE_BASE_URL/auth/v1/config \​
-H "apikey: ${SERVICE_ROLE_KEY}" \​
-H "Authorization: Bearer ${SERVICE_ROLE_KEY}" \​
-H "Content-Type: application/json"​
​
  • 修改配置的示例,其中 body 为上节表格中的 配置项 Key 和 配置项 Value 组成的 JSON Map​
​
curl -X PATCH $SUPABASE_BASE_URL/auth/v1/config \​
-H "apikey: ${SERVICE_ROLE_KEY}" \​
-H "Authorization: Bearer ${SERVICE_ROLE_KEY}" \​
-H "Content-Type: application/json" \​
-d '{​
"EXTERNAL_CAS_ENABLED": true,​
"EXTERNAL_CAS_URL": "https://cas.example.com/cas",​
"EXTERNAL_CAS_VERSION": "3.0",​
"EXTERNAL_CAS_EMAIL_OPTIONAL": false,​
"EXTERNAL_CAS_EMAIL_KEY": "email",​
"URI_ALLOW_LIST": "http://www.app1.com/home,https://www.app2.com",​
...​
}'​
​
  1. 在 CAS Server 上配置 CAS Client Service URL​
  1. 复制 Supabase Callback URL:在 Supabase CAS 配置页面的“Callback URL(for OAuth)”文本框,点击“Copy”按钮进行复制,得到类似如下格式的 URL https://br-xxx.supabase.aidap-global.cn-beijing.volces.com/auth/v1/callback。​
  • ​​​
  1. 在 CAS Server 上配置 CAS Client Service URL 为 Supabase 域名​
  • 修改上述 URL 为正则表达式,注意对点号(.)的转义,以及末尾的通配符(.*$),如: ^https://br-xxx\.supabase\.aidap-global\.cn-beijing\.volces\.com/auth/v1/callback.*$。​
  • 将修改后的字符串配置为 CAS Server 的 CAS Client Service URL,示例如下。​
  • ​​​
示例​
通过 Supabase Client SDK 进行 CAS 授权登录​
调用 signInWithOAuth 函数进行授权登录,需要将 provider 指定为 cas。​
​
import { createClient } from '@supabase/supabase-js'​
const supabase = createClient(​
"<SUPABASE_BASE_URL>",​
"<SUPABASE_ANON_KEY>")​
​
// 手机号+短信验证码(OTP) 登录​
async function signInWithCAS() {​
try {​
const { error } = await supabase.auth.signInWithOAuth({​
provider: 'cas', // 指定provder为cas​
options: {​
redirectTo: 'https://www.examples.com/' // 登录成功后的重定向地址​
}​
});​
​
if (error) throw error;​
​
} catch (error) {​
console.error('CAS授权登录失败:', error);​
}​
}​
​
最近更新时间:2026.04.21 19:11:19
这个页面对您有帮助吗?
有用
有用
无用
无用