开发者文档

让用户用 Descend ID 一键登录你的应用。只需 3 行代码。

接入流程

1

注册账号

访问 auth.descend.id 注册一个 Descend ID 账号。

2

创建应用

控制台 中创建应用,获取 client_id

3

复制代码

在应用详情中复制接入代码,粘贴到你的网站即可。

SDK 接入

使用官方 SDK,一行代码完成接入。

引入 SDK

<script src="https://sdk.descend.id/"></script>

初始化

<script> new DescendID({ clientId: 'app_xxxxxxxxxxxxxxxx', onSuccess: function(user) { console.log('登录成功', user); // 你的业务逻辑 } }) </script>

完整示例

<!DOCTYPE html> <html> <head> <title>我的应用</title> </head> <body> <button id="loginBtn">用 Descend ID 登录</button> <div id="userInfo"></div> <script src="https://sdk.descend.id/"></script> <script> var sdk = new DescendID({ clientId: 'app_xxxxxxxxxxxxxxxx', onSuccess: function(user) { document.getElementById('userInfo').innerHTML = '欢迎,' + user.display_name; document.getElementById('loginBtn').textContent = '已登录'; } }) document.getElementById('loginBtn').addEventListener('click', function() { sdk.login(); }) // 检查登录状态 sdk.getUser().then(function(user) { if (user) { document.getElementById('userInfo').innerHTML = '欢迎,' + user.display_name; document.getElementById('loginBtn').textContent = '已登录'; } }) </script> </body> </html>
🔐

PKCE 安全

SDK 自动使用 PKCE 流程,无需 client_secret,安全可靠。

零配置

自动处理回调、Token 管理、用户信息获取,开发者只需关心业务。

📦

轻量级

SDK 体积仅 ~3KB,对页面性能几乎无影响。

API 参考

直接调用 API 接口(不推荐使用 SDK 的情况下)。

授权端点

GET https://auth.descend.id/authorize
参数 类型 说明
client_id string 必填。应用 ID
redirect_uri string 必填。回调地址
pkce boolean 推荐启用。设为 true
code_challenge string PKCE 模式必填。SHA256(code_verifier) 的 base64url 编码
code_challenge_method string 固定值 S256
scope string 可选。默认 openid profile email
state string 可选。防 CSRF

Token 交换

POST https://smdsyxotjupxspyfkxml.supabase.co/functions/v1/oauth/token
参数 类型 说明
client_id string 必填。应用 ID
code string 必填。授权码
grant_type string 固定值 authorization_code
code_verifier string PKCE 模式必填

获取用户信息

GET https://smdsyxotjupxspyfkxml.supabase.co/functions/v1/oauth/userinfo Authorization: Bearer <access_token>
响应字段 类型 说明
id string 用户唯一 ID
email string 邮箱地址
username string 用户名
display_name string 显示名称
avatar_url string 头像地址
bio string 个人简介
website string 个人网站
location string 所在地

常见问题

接入需要后端吗?

不需要。使用 PKCE 模式 + SDK,完全前端接入,不需要任何后端代码。

Client Secret 有什么用?

PKCE 模式下不需要 client_secret。它是为普通 OAuth 模式保留的,我们强烈推荐使用 PKCE 模式。

支持哪些浏览器?

支持所有现代浏览器(Chrome 60+、Firefox 55+、Safari 11+、Edge 79+)。

Token 有效期多久?

access_token 有效期为 7 天。SDK 会自动管理 Token 的存储和验证。

如何获取用户信息?

SDK 的 onSuccess 回调中会返回完整的用户信息,或通过 sdk.getUser() 获取。

可以自定义登录按钮样式吗?

当然可以。SDK 只负责登录逻辑,不限制 UI 样式,你可以用任何按钮触发 sdk.login()