导入
创建客户端并获取所有客户端
学习如何使用 Auth0 API 创建客户端并获取所有客户端。
...
创建客户端并获取所有客户端的端点
在 Auth0 中创建客户端是为应用程序建立安全认证和授权的关键步骤。在 Auth0 中,客户端代表一个使用 Auth0 进行认证和授权的应用程序或服务。要创建客户端,必须提供一个具有 `create:clients` 权限范围的访问令牌。该访问令牌允许我们创建和配置客户端,从而让我们的应用程序或服务能够通过 Auth0 安全地进行用户认证和授权。此端点要求访问令牌具备 `create:clients` 权限范围。
...
| 参数名称 | 类型 | 分类 | 描述 |
|---|---|---|---|
| name | 字符串 | 必填 | 定义应用程序的名称。该字符串长度至少为一个字符。不允许使用 < 或 > 符号 |
| description | 字符串 | 可选 | 定义客户端的描述,最大长度为 140 个字符。 |
| callbacks | 字符串 | 可选 | 接收一个有效的 URL 列表,用于用户登录后重定向。多个 URL 之间用逗号分隔。 |
| grant_types | 字符串 | 可选 | 定义此客户端支持的授权类型列表,以逗号分隔。可选值包括:authorization_code、implicit、refresh_token、client_credentials 和 password。 |
| app_type | 字符串 | 可选 | 定义应用程序类型。Auth0 主要支持四种类型:spa、native、non_interactive 和 regular_web。 |
| allowed_logout_urls | 字符串 | 可选 | 定义用户登出后重定向的有效 URL 列表,以逗号分隔。 |
| refresh_token.rotation_type | 字符串 | 必填 | 定义刷新令牌的轮换类型(旋转或非旋转)。refresh_token 对象为可选,但如果定义,则 rotation_type 为必填。 |
| refresh_token.expiration_type | 字符串 | 必填 | 定义刷新令牌的过期类型。其值可以是 expiring(会过期)或 non-expiring(永不过期)。如果定义了 refresh_token 对象,则此项为必填。 |
| refresh_token.token_lifetime | 整数 | 可选 | 定义刷新令牌的有效时间(单位:秒)。 |
1// 导入所需库 2const fetch = require('node-fetch'); 3 4const endpointUrl = new URL('https://{{DOMAIN}}/api/v2/clients'); 5 6const headerParameters = { 7 'Content-Type': 'application/json', 8 'Authorization': 'Bearer {{ACCESS_TOKEN}}', 9}; 10 11const bodyParameters = JSON.stringify({ 12 "name": "示例客户端", 13 "description": "通过 API 调用创建的示例客户端", 14 "callbacks": [ 15 "https://example.com/callback" 16 ], 17 "grant_types": [ 18 "client_credentials" 19 ], 20 "app_type": "non_interactive", 21}); 22 23const options = { 24 method: 'POST', 25 headers: headerParameters, 26 body: bodyParameters, 27}; 28 29async function createClient() { 30 try { 31 const response = await fetch(endpointUrl, options); 32 printResponse(response); 33 } catch (error) { 34 printError(error); 35 } 36} 37 38createClient();
| 字段名 | 描述 |
|---|---|
| tenant | 返回该客户端所属租户的名称。 |
| client_id | 定义客户端的唯一标识符。 |
| client_secret | 定义客户端的密钥。必须严格保密,不得公开。建议不在请求体中指定 client_secret,由 API 自动生成安全密钥。 |
| refresh_token | 定义与刷新令牌相关的属性。部分字段已在请求参数表中展示。 |
| 参数名称 | 类型 | 分类 | 描述 |
|---|---|---|---|
| fields | 字符串 | 可选 | 指定希望包含或排除的响应字段,以逗号分隔。 |
| include_fields | 布尔值 | 可选 | 控制 fields 参数中指定字段的包含或排除。若为 true,则包含这些字段;否则排除。 |
| page | 整数 | 可选 | 指定返回结果的页码索引,第一页索引为 0。 |
| per_page | 整数 | 可选 | 指定每页显示的项目数量,默认值为 50,最大值为 100。 |
| include_totals | 布尔值 | 可选 | 若为 true,则在响应中返回总记录数。默认值为 false。 |
| is_global | 布尔值 | 可选 | 根据 global 字段应用筛选条件。 |
| is_first_party | 布尔值 | 可选 | 根据客户端是否为第一方(即由与 Auth0 账户同组织运营)进行过滤。 |
| app_type | 字符串 | 可选 | 根据指定的应用程序类型对客户端进行筛选。 |
1// 导入所需库 2const fetch = require('node-fetch'); 3 4const endpointUrl = new URL('https://{{DOMAIN}}/api/v2/clients'); 5 6const headerParameters = { 7 'Content-Type': 'application/json', 8 'Authorization': 'Bearer {{ACCESS_TOKEN}}', 9}; 10 11// 定义查询参数 12const queryParameters = new URLSearchParams({ 13 include_totals: true, 14 is_global: false, 15}); 16 17const options = { 18 method: 'GET', 19 headers: headerParameters, 20}; 21 22async function getAllClients() { 23 try { 24 endpointUrl.search = queryParameters; 25 const response = await fetch(endpointUrl, options); 26 printResponse(response); 27 } catch (error) { 28 printError(error); 29 } 30} 31 32getAllClients();
| 响应字段 | 描述 |
|---|---|
| total | 显示客户端的总数。 |
| start | 显示响应的起始页码索引。 |
| limit | 显示每页最多可显示的项目数量。 |
| clients | 包含所有客户端及其相关信息的数组。数组中的字段说明见前文。 |