跳到主要内容

登录配置

getLoginConfig​

1. 接口描述​

接口功能:查询登录策略配置

接口声明:app.env.getLoginConfig(): Promise<Object>

版本提示

自 v5.1.0 起支持此接口

查询指定云开发环境的登录策略配置,包括手机号短信登录、邮箱登录、用户名密码登录和匿名登录方式的开启状态,同时包含短信验证码发送通道、MFA 多因子认证和密码更新策略。

2. 输入参数​

无

3. 返回结果​

字段必填类型说明
RequestId是String请求唯一标识
EmailLogin是Boolean是否开启邮箱登录方式
AnonymousLogin是Boolean是否开启匿名登录方式
UserNameLogin是Boolean是否开启用户名密码登录方式
PhoneNumberLogin是Boolean是否开启手机号短信登录方式
SmsVerificationConfig是SmsVerificationConfig短信验证码发送配置,见下方说明
MfaConfig否MfaConfigMFA 多因子认证登录配置
PwdUpdateStrategy否PwdUpdateStrategy密码修改策略配置

SmsVerificationConfig​

字段必填类型说明
Type否String短信发送通道类型,如 default
Name否String自定义 APIs 数据源名称
Method否String调用方法
SmsDayLimit否Number每日发送限额,-1 表示不限制

MfaConfig​

字段必填类型说明
On否StringMFA 因子认证,TRUE 或 FALSE
Sms否String短信验证,TRUE 或 FALSE
Email否String邮箱验证,TRUE 或 FALSE
RequiredBindPhone否String强制绑定手机号,TRUE 或 FALSE

PwdUpdateStrategy​

字段必填类型说明
FirstLoginUpdate否Boolean首次登录是否强制修改密码
PeriodUpdate否Boolean是否开启定期强制修改密码
PeriodValue否Number定期修改密码的周期值
PeriodType否String周期时间单位,如 YEAR、MONTH、WEEK

4. 示例代码​

const CloudBase = require('@cloudbase/manager-node')
const app = new CloudBase({ secretId: 'Your SecretId', secretKey: 'Your SecretKey', envId: 'your-env-id' })

async function test() {
const res = await app.env.getLoginConfig()
console.log('邮箱登录:', res.EmailLogin)
console.log('匿名登录:', res.AnonymousLogin)
console.log('用户名密码登录:', res.UserNameLogin)
console.log('手机号短信登录:', res.PhoneNumberLogin)
}

test()

modifyLoginConfig​

1. 接口描述​

接口功能:修改登录策略配置

接口声明:app.env.modifyLoginConfig(params): Promise<Object>

版本提示

自 v5.1.0 起支持此接口

修改指定云开发环境的登录策略配置。支持开启或关闭手机号短信登录、邮箱登录、用户名密码登录和匿名登录,同时可配置短信验证码发送通道、MFA 多因子认证和密码更新策略。修改后立即生效,影响该环境下所有终端用户的登录行为。

2. 输入参数​

字段必填类型说明
PhoneNumberLogin是Boolean手机号短信登录开关
EmailLogin是Boolean邮箱登录开关
UserNameLogin是Boolean用户名密码登录开关
AnonymousLogin是Boolean匿名登录开关
SmsVerificationConfig否Object短信验证码发送配置,不传则不修改当前配置,结构见 SmsVerificationConfig
MfaConfig否ObjectMFA 多因子认证登录配置,不传则不修改当前配置,结构见 MfaConfig
PwdUpdateStrategy否Object密码更新策略配置,不传则不修改当前配置,结构见 PwdUpdateStrategy

3. 返回结果​

字段类型说明
RequestIdString请求唯一标识

4. 示例代码​

const CloudBase = require('@cloudbase/manager-node')
const app = new CloudBase({ secretId: 'Your SecretId', secretKey: 'Your SecretKey', envId: 'your-env-id' })

async function test() {
// 先查询当前配置
const config = await app.env.getLoginConfig()

// 开启匿名登录
const res = await app.env.modifyLoginConfig({
PhoneNumberLogin: config.PhoneNumberLogin,
EmailLogin: config.EmailLogin,
UserNameLogin: config.UserNameLogin,
AnonymousLogin: true
})
console.log(res.RequestId)
}

test()

describeClient​

1. 接口描述​

接口功能:查询应用客户端详情

接口声明:app.env.describeClient(id): Promise<Object>

版本提示

自 v5.1.0 起支持此接口

获取指定云开发环境下某个客户端的配置信息,包括 OAuth 凭证、Token 有效期、会话控制策略等。当客户端 ID 等于环境 ID 时,返回该环境的默认客户端配置。

2. 输入参数​

字段必填类型说明
Id是String客户端唯一标识符(Client ID),一般使用环境 ID

3. 返回结果​

字段必填类型说明
RequestId是String请求唯一标识
Id是String客户端的唯一标识符(Client ID)
CreatedAt否String客户端的创建时间,ISO 8601 格式
UpdatedAt否String客户端信息的最后修改时间,ISO 8601 格式
RefreshTokenExpiresIn否NumberRefresh Token 的有效期,单位为秒
AccessTokenExpiresIn否NumberAccess Token 的有效期,单位为秒
MaxDevice否Number单个用户允许同时登录的最大会话数量,-1 表示不限制

4. 示例代码​

const CloudBase = require('@cloudbase/manager-node')
const app = new CloudBase({ secretId: 'Your SecretId', secretKey: 'Your SecretKey', envId: 'your-env-id' })

async function test() {
const res = await app.env.describeClient('your-env-id')
console.log('Client ID:', res.Id)
console.log('Refresh Token 有效期:', res.RefreshTokenExpiresIn, '秒')
console.log('Access Token 有效期:', res.AccessTokenExpiresIn, '秒')
console.log('最大会话数:', res.MaxDevice)
}

test()

modifyClient​

1. 接口描述​

接口功能:修改应用客户端配置

接口声明:app.env.modifyClient(params): Promise<Object>

版本提示

自 v5.1.0 起支持此接口

采用增量更新策略,仅更新请求中传入的非空字段,未传入的字段保持原值不变。支持修改 Token 有效期、会话控制策略等配置。当客户端 ID 等于环境 ID 且客户端尚未创建时,将自动创建默认客户端配置。

2. 输入参数​

字段必填类型说明
Id是String客户端唯一标识符(Client ID)
RefreshTokenExpiresIn否NumberRefresh Token 的有效期,单位为秒,取值范围 1800~2592000,默认 2592000
AccessTokenExpiresIn否NumberAccess Token 的有效期,单位为秒,最小 1800,默认 7200,应小于 RefreshTokenExpiresIn
MaxDevice否Number单个用户允许同时登录的最大会话数量,-1 不限制,0 按 User-Agent 区分,1~50 为精确限制

3. 返回结果​

字段类型说明
RequestIdString请求唯一标识

4. 示例代码​

const CloudBase = require('@cloudbase/manager-node')
const app = new CloudBase({ secretId: 'Your SecretId', secretKey: 'Your SecretKey', envId: 'your-env-id' })

async function test() {
const res = await app.env.modifyClient({
Id: 'your-env-id',
RefreshTokenExpiresIn: 2592000,
AccessTokenExpiresIn: 7200,
MaxDevice: 5
})
console.log(res.RequestId)
}

test()

getProviders​

1. 接口描述​

接口功能:获取三方认证源列表

接口声明:app.env.getProviders(): Promise<Object>

版本提示

自 v5.1.0 起支持此接口

查询指定云开发环境下的身份认证源列表,包括第三方登录(OAuth、OIDC、SAML)、微信小程序登录、自定义登录和邮箱登录等。若自定义登录或邮箱登录的身份源尚未创建,接口会自动追加一个默认关闭状态的记录。

2. 输入参数​

无

3. 返回结果​

字段必填类型说明
RequestId是String请求唯一标识
Total否Number认证源总数
Data否Array<Provider>三方认证源列表

Provider​

字段必填类型说明
Id是String身份源唯一标识,2~32 位小写字母和数字
Config是Object身份源安全认证配置,见 ProviderConfig
Name否LocalizedMessage身份源名称,支持国际化多语言配置
Picture否String身份源图标 URL
Homepage否String身份源官方主页地址
ProviderType否String身份源协议类型:OAUTH、OIDC、SAML、CUSTOM、EMAIL 等
On否String身份源启用状态,TRUE 或 FALSE
AutoSignUpWithProviderUser否String是否自动注册系统用户,TRUE、FALSE、UNSPECIFIED
TransparentMode否String是否开启信息透传模式,TRUE 或 FALSE
ReuseUserId否String是否复用第三方用户 ID,TRUE 或 FALSE
EmailConfig否EmailConfig邮箱身份源专项配置,仅 ProviderType 为 EMAIL 时有效
Description否LocalizedMessage身份源描述,支持国际化多语言配置
AutoSignInWhenEmailMatch否String是否开启邮箱自动关联登录,TRUE、FALSE、UNSPECIFIED
AutoSignInWhenPhoneNumberMatch否String是否开启手机号码自动关联登录,TRUE、FALSE、UNSPECIFIED

ProviderConfig​

字段类型必选说明
IssuerStringOIDC 时建议填写身份提供方的唯一标识符(Issuer URL),用于验证 ID Token 中的 iss 字段。仅当 ProviderType 为 OIDC 时需要填写,值通常为第三方 OIDC 服务的根地址,如 https://accounts.google.com。填写后平台将自动通过 /.well-known/openid-configuration 发现并填充 AuthorizationEndpoint、TokenEndpoint、UserinfoEndpoint、JwksUri 等端点地址
JwksUriStringOIDC 时需要JSON Web Key Set 地址,用于获取公钥以验证 ID Token 签名。仅当 ProviderType 为 OIDC 时需要填写。若已填写 Issuer,该字段将通过 Discovery 自动获取,无需手动填写
ClientIdStringOIDC/OAUTH 时必填在第三方身份提供方注册的应用客户端 ID。当 ProviderType 为 OIDC 或 OAUTH 时必须填写,可在对应平台的开发者控制台中获取
ClientSecretStringOIDC/OAUTH 时必填在第三方身份提供方注册的应用客户端密钥,与 ClientId 配合使用,用于在 Token 端点进行身份验证。当 ProviderType 为 OIDC 或 OAUTH 时必须填写,请妥善保管,避免泄露
RedirectUriStringOIDC/OAUTH 时必填OAuth 授权完成后第三方平台回调的地址,需与在第三方平台注册的回调地址完全一致。当 ProviderType 为 OIDC 或 OAUTH 时必须填写。示例:https://envId.ap-shanghai.tcb-api.tencentcloudapi.com/auth/v1/callback
ScopeStringOIDC/OAUTH 时必填向第三方申请的权限范围,多个 scope 空格分隔。当 ProviderType 为 OIDC 或 OAUTH 时必须填写,OIDC 场景下通常至少包含 openid,如需获取邮箱或手机号可追加 email、phone 等。若已填写 Issuer 且未指定 Scope,将自动使用 Discovery 返回的 scopes_supported。示例:openid email name
AuthorizationEndpointStringOIDC/OAUTH 时必填授权端点地址,用于引导用户跳转至第三方登录页面。当 ProviderType 为 OIDC 或 OAUTH 时必须填写。若已填写 Issuer,该字段将通过 Discovery 自动获取
TokenEndpointStringOIDC/OAUTH 时必填Token 端点地址,用于通过授权码(code)换取 Access Token 和 ID Token。当 ProviderType 为 OIDC 或 OAUTH 时必须填写。若已填写 Issuer,该字段将通过 Discovery 自动获取
UserinfoEndpointStringOIDC/OAUTH 时按需用户信息端点地址,用于通过 Access Token 获取用户基本信息(昵称、头像、邮箱等)。当 ProviderType 为 OIDC 或 OAUTH 且需要获取用户详细信息时填写。若已填写 Issuer,该字段将通过 Discovery 自动获取
ResponseTypeString否授权请求的响应类型。可选值:code(授权码模式,推荐)、token(隐式模式)、id_token(直接返回 ID Token)。ProviderType 为 OIDC 时默认 id_token,其他类型默认 code
SignoutEndpointString否单点退出端点地址。配置后,用户退出时将跳转至该地址使第三方 IDP 登录态失效。不填则退出时仅清除本平台登录态
TokenEndpointAuthMethodString否Token 端点的客户端身份验证方式。可选值:CLIENT_SECRET_POST(凭证放在请求 Body 中)、CLIENT_SECRET_BASIC(凭证通过 HTTP Basic Auth Header 传递),默认 CLIENT_SECRET_POST
SamlMetadataStringSAML 时必填SAML 身份提供方的 Metadata XML 内容,包含实体 ID、SSO 端点地址、签名证书等,最大 10KB。仅当 ProviderType 为 SAML 时填写,通常可从第三方 IDP 管理控制台下载
RequestParametersMapRequestParametersMap否请求参数映射配置,用于处理非标准 OAuth 协议的参数转换。默认严格遵循 OAuth 2.0 标准,对接微信、企业微信等非标准平台时需配置
ResponseParametersMapResponseParametersMap否响应参数映射配置,用于处理非标准 OAuth 协议的响应参数转换。对接微信等非标准平台时,可将第三方返回的字段映射为平台标准字段
必填条件汇总
  • OIDC 类型:建议填写 Issuer(自动发现端点),或手动填写 ClientId、ClientSecret、RedirectUri、Scope、AuthorizationEndpoint、TokenEndpoint、JwksUri
  • OAUTH 类型:必填 ClientId、ClientSecret、RedirectUri、Scope、AuthorizationEndpoint、TokenEndpoint
  • SAML 类型:必填 SamlMetadata
  • 其他类型(CUSTOM、EMAIL 等):所有字段均为可选

RequestParametersMap​

请求参数映射,用于非标准 OAuth 协议的参数转换。默认可为空,对接国内平台(如微信、企业微信)时需配置。

字段必填类型说明
ClientId否StringOAuth 标准 client_id 的映射字段名,如微信对应 appid
ClientSecret否StringOAuth 标准 client_secret 的映射字段名
RedirectUri否StringOAuth 标准 redirect_uri 的映射字段名
GrantType否StringOAuth 授权模式匹配的参数字段名
ClientCredentials否StringOAuth 授权模式类型,如 authorization_code、client_credentials
AccessToken否StringOAuth 返回中 access_token 的映射字段名
ExpiresIn否StringOAuth 返回中 Token 有效期的映射字段名
AuthPosition否StringOAuth 获取 Token 时认证信息的请求位置:URL、Headers、Body
RegisterUserRoleId否String身份源注册用户时自动绑定的角色 ID
RegisterUserAutoLicense否String注册用户时是否自动授予许可证,TRUE 或 FALSE,默认 FALSE
RegisterUserType否String注册用户时的用户类型:externalUser(外部用户)或 internalUser(内部用户),默认 externalUser

ResponseParametersMap​

响应参数映射,用于非标准 OAuth 协议的响应参数转换。默认可为空,对接国内平台(如微信、企业微信)时需配置。

字段必填类型说明
Sub否String用户唯一标识(sub)的映射字段名,对应 OIDC 标准 sub
Name否String用户名称的映射字段名,对应 OIDC 标准 name
Picture否String用户头像的映射字段名,需公网可访问 URL
Username否String用户登录名的映射字段名,对应 OIDC 标准 preferred_username
Email否String用户邮箱的映射字段名,对应 OIDC 标准 email
PhoneNumber否String用户手机号的映射字段名,对应 OIDC 标准 phone_number
Groups否String用户角色/分组的映射字段名,对应 OIDC 标准 groups,支持字符串数组

LocalizedMessage​

国际化多语言文本结构,用于身份认证源的 Name 和 Description 等字段。可以为每种语言配置不同的展示文本。

字段必填类型说明
Message是String默认展示的文本
Localized否Array<MessageLocalized>针对每种语言的展示文字列表

MessageLocalized​

字段必填类型说明
Message是String该语言的展示文本
Locale是String语言标识

示例:

{
Message: '微信登录',
Localized: [
{ Message: 'WeChat Login', Locale: 'en' },
{ Message: '위챗 로그인', Locale: 'ko' }
]
}

4. 示例代码​

const CloudBase = require('@cloudbase/manager-node')
const app = new CloudBase({ secretId: 'Your SecretId', secretKey: 'Your SecretKey', envId: 'your-env-id' })

async function test() {
const res = await app.env.getProviders()
console.log('认证源总数:', res.Total)
res.Data?.forEach(provider => {
console.log(`${provider.Id} (${provider.ProviderType}): ${provider.On}`)
})
}

test()

addProvider​

1. 接口描述​

接口功能:添加身份认证源

接口声明:app.env.addProvider(params): Promise<Object>

版本提示

自 v5.1.0 起支持此接口

在指定云开发环境下创建新的身份认证源,支持 OAuth 2.0、OIDC、SAML 2.0 等标准协议,以及自定义登录和邮箱登录等多种认证方式。若身份源 ID 已存在将返回错误。每个环境最多允许添加 20 个认证源。

2. 输入参数​

字段必填类型说明
Name是LocalizedMessage身份源显示名称,支持国际化多语言配置
ProviderType是String身份源协议类型:OAUTH、OIDC、SAML、WX_MICRO_APP、WX_QRCODE_MICRO_APP、WX_CLOUDBASE_MICRO_APP、WX_MP、WX_OPEN、WX_WORK_INTERNAL、WX_WORK_AGENT、WX_WORK_THIRD_PARTY、WX_WORK_THIRD_PARTY_ASSOCIATION、CUSTOM、EMAIL
Id否String身份源唯一标识符,2~32 位小写字母和数字,不填则系统自动生成
Picture否String身份源图标 URL,建议 64×64 SVG 格式
Homepage否String身份源官方主页地址
Config否Object身份认证源协议连接配置,结构见 ProviderConfig
TransparentMode否String是否开启透传模式,TRUE、FALSE、UNSPECIFIED,默认 FALSE
On否String身份源启用状态,TRUE、FALSE、UNSPECIFIED,默认 TRUE
Description否LocalizedMessage身份源描述,支持国际化多语言配置
ReuseUserId否String是否复用第三方用户 ID 作为平台用户 ID,TRUE、FALSE、UNSPECIFIED
AutoSignInWhenEmailMatch否String是否开启邮箱自动关联登录,默认 FALSE
AutoSignInWhenPhoneNumberMatch否String是否开启手机号自动关联登录,默认 TRUE

3. 返回结果​

字段类型说明
RequestIdString请求唯一标识

4. 示例代码​

const CloudBase = require('@cloudbase/manager-node')
const app = new CloudBase({ secretId: 'Your SecretId', secretKey: 'Your SecretKey', envId: 'your-env-id' })

async function test() {
// 添加一个 OAuth 身份认证源
const res = await app.env.addProvider({
Name: { Message: 'My OAUTH Provider' },
ProviderType: 'OAUTH',
Id: 'myoauth',
Config: {
ClientId: 'your-client-id',
ClientSecret: 'your-client-secret',
AuthorizationEndpoint: 'https://www.example.com/auth',
TokenEndpoint: 'https://www.example.com/token',
UserinfoEndpoint: 'https://www.example.com/userinfo',
Scope: 'openid profile',
ResponseType: 'code',
TokenEndpointAuthMethod: 'CLIENT_SECRET_POST'
},
On: 'TRUE'
})
console.log(res.RequestId)
}

test()

modifyProvider​

1. 接口描述​

接口功能:修改身份认证源

接口声明:app.env.modifyProvider(params): Promise<Object>

版本提示

自 v5.1.0 起支持此接口

更新已有身份认证源的配置信息,支持修改基本信息、协议连接配置、登录行为控制及启用状态。采用增量更新策略,仅更新传入的字段,未传入的字段保持原值。OIDC 类型修改 Issuer 后将自动通过 Discovery 重新获取端点配置。若 CUSTOM 或 EMAIL 身份源尚不存在,调用时将自动创建。

2. 输入参数​

字段必填类型说明
Id是String身份源唯一标识符,2~32 位小写字母和数字
Name否LocalizedMessage身份源显示名称,支持国际化多语言配置
Picture否String身份源图标 URL
Homepage否String身份源官方主页地址
ProviderType否String身份源协议类型
Config否Object身份认证源协议连接配置,结构见 ProviderConfig
TransparentMode否String是否开启透传模式,开启后 ReuseUserId 强制 TRUE,AutoSignUpWithProviderUser 强制 FALSE
On否String身份源启用状态,TRUE、FALSE、UNSPECIFIED,默认 TRUE
Description否LocalizedMessage身份源描述,支持国际化多语言配置
ReuseUserId否String是否复用第三方用户 ID,TRUE、FALSE、UNSPECIFIED
AutoSignUpWithProviderUser否String是否自动注册系统用户,TRUE、FALSE、UNSPECIFIED
EmailConfig否EmailConfig邮箱身份源专项配置,仅 ProviderType 为 EMAIL 时有效
AutoSignInWhenEmailMatch否String是否开启邮箱自动关联登录,默认 FALSE
AutoSignInWhenPhoneNumberMatch否String是否开启手机号自动关联登录,默认 TRUE

EmailConfig​

邮箱身份源专项配置,用于配置邮件发送方式和自定义模板。仅当 ProviderType 为 EMAIL 时有效。被 modifyProvider 引用。

字段必填类型说明
On否String是否采用平台默认代发,TRUE 或 FALSE
SmtpConfig否SmtpConfigSMTP 配置
TemplateConfig否EmailTemplateConfig邮件模板配置

SmtpConfig​

自有 SMTP 邮件服务器连接配置。

字段必填类型说明
SenderAddress是String发件人邮箱地址,作为邮件的 From 头显示
ServerHost是StringSMTP 服务器域名或 IP 地址,如 smtp.example.com
ServerPort是NumberSMTP 服务器端口,常用值:465(SSL)、587(STARTTLS)、25
AccountUsername是StringSMTP 登录账号,通常为发件人邮箱地址或 SMTP 用户名
AccountPassword是StringSMTP 登录密码或授权码,请妥善保管,避免泄露
SecurityMode否String加密模式:AUTO(自动选择)、SSL、STARTSSL、NO_SSL,默认 AUTO

EmailTemplateConfig​

邮件模板配置。

字段必填类型说明
RegisterSignIn否LocalizedTemplate注册/登录模板
DefaultTpl否LocalizedTemplate默认模板

入参限制:模板中必须包含 {{.VerificationCode}} 变量用于展示验证码,可选变量包括 {{.Usage}}(用途说明)、{{.ExpireMinutes}}(过期时间)、{{.Email}}(收件人邮箱)。模板中禁止包含 script、javascript、onclick、onload、iframe、link 标签及 CSS expression、CSS url() 等。

LocalizedTemplate​

多语言邮件模板,按语言代码分别指定 HTML 模板内容。

字段必填类型说明
ZhCN否String中文模板,HTML 格式。必须包含 {{.VerificationCode}} 变量,可选变量有 {{.Usage}}、{{.ExpireMinutes}}、{{.Email}}。禁止包含 script、javascript、onclick、onload、iframe、link 标签及 CSS expression、CSS url() 等
EnUS否String英文模板,HTML 格式。变量和限制同 ZhCN

示例:

{
RegisterSignIn: {
ZhCN: `
<h1>验证码</h1>
<p>您的验证码是: <strong>{{.VerificationCode}}</strong></p>
<p>5分钟内有效</p>
`,
EnUS: `
<h1>Verification Code</h1>
<p>Your Verification Code Is: <strong>{{.VerificationCode}}</strong></p>
<p>expire in 5 min</p>
`
}
}

3. 返回结果​

字段类型说明
RequestIdString请求唯一标识

4. 示例代码​

const CloudBase = require('@cloudbase/manager-node')
const app = new CloudBase({ secretId: 'Your SecretId', secretKey: 'Your SecretKey', envId: 'your-env-id' })

async function test() {
// 启用微信开放平台登录
const res = await app.env.modifyProvider({
Id: 'wx_open',
On: 'TRUE',
Config: {
ClientId: 'your-wechat-appid',
ClientSecret: 'your-wechat-appsecret'
}
})
console.log(res.RequestId)
}

test()

deleteProvider​

1. 接口描述​

接口功能:删除第三方认证源

接口声明:app.env.deleteProvider(id): Promise<Object>

版本提示

自 v5.1.0 起支持此接口

2. 输入参数​

字段必填类型说明
Id是String认证源 ID,2~32 位小写英文字母或数字,如 github

3. 返回结果​

字段类型说明
RequestIdString请求唯一标识

4. 示例代码​

const CloudBase = require('@cloudbase/manager-node')
const app = new CloudBase({ secretId: 'Your SecretId', secretKey: 'Your SecretKey', envId: 'your-env-id' })

async function test() {
const res = await app.env.deleteProvider('myoidc')
console.log(res.RequestId)
}

test()

createApiKey​

1. 接口描述​

接口功能:创建 API Key

接口声明:app.env.createApiKey(params): Promise<Object>

版本提示

自 v5.1.0 起支持此接口

在指定云开发环境下创建 API Key 访问凭证。支持两种类型:

  • api_key:服务端管理员访问凭证,可设置有效期,单个环境最多 5 个
  • publish_key:前端匿名访问凭证,固定有效期,每个环境仅保留一个

创建成功后返回 API Key 明文 Token,该值仅在创建时返回一次,请妥善保存。

2. 输入参数​

字段必填类型说明
KeyType是String密钥类型:api_key 或 publish_key
KeyName否String密钥自定义名称,建议填写描述性名称,如 server-prod
ExpireIn否Number密钥有效期,单位秒,最短 7200 秒。0 或不设置表示永不过期

3. 返回结果​

字段必填类型说明
RequestId是String请求唯一标识
KeyId是StringAPI Key 唯一标识符
Name是StringAPI Key 名称
ApiKey否StringAPI Key 令牌值(JWT 格式),仅在创建时返回完整明文
ExpireAt否String过期时间,ISO 8601 格式
CreateAt否String创建时间,ISO 8601 格式

4. 示例代码​

const CloudBase = require('@cloudbase/manager-node')
const app = new CloudBase({ secretId: 'Your SecretId', secretKey: 'Your SecretKey', envId: 'your-env-id' })

async function test() {
const res = await app.env.createApiKey({
KeyType: 'api_key',
KeyName: 'server-prod',
ExpireIn: 86400
})
console.log('KeyId:', res.KeyId)
console.log('ApiKey:', res.ApiKey) // 请妥善保存,仅创建时返回
}

test()

describeApiKeyList​

1. 接口描述​

接口功能:查询 API Key 列表

接口声明:app.env.describeApiKeyList(params?): Promise<Object>

版本提示

自 v5.1.0 起支持此接口

分页查询指定云开发环境下的 API Key 访问凭证列表,支持按类型过滤。未指定类型时,默认仅返回 api_key 类型的记录。api_key 类型的令牌值脱敏处理,publish_key 类型返回完整明文。

2. 输入参数​

字段必填类型说明
KeyType否String密钥类型过滤:api_key 或 publish_key,默认 api_key
PageNumber否Number分页页码,从 1 开始,默认 1
PageSize否Number每页条数

3. 返回结果​

字段必填类型说明
RequestId是String请求唯一标识
Data否Array<ApiKeyToken>API Key 列表
Total否Number总数

ApiKeyToken​

字段必填类型说明
KeyId否StringAPI Key 的唯一标识符
Name否StringAPI Key 的名称
ApiKey否StringAPI Key 的令牌值,api_key 类型列表查询时脱敏处理
ExpireAt否String过期时间,ISO 8601 格式
CreateAt否String创建时间,ISO 8601 格式

4. 示例代码​

const CloudBase = require('@cloudbase/manager-node')
const app = new CloudBase({ secretId: 'Your SecretId', secretKey: 'Your SecretKey', envId: 'your-env-id' })

async function test() {
const res = await app.env.describeApiKeyList({
KeyType: 'api_key',
PageNumber: 1,
PageSize: 10
})
console.log('总数:', res.Total)
res.Data?.forEach(key => {
console.log(`${key.Name} (${key.KeyId}): 过期时间 ${key.ExpireAt}`)
})
}

test()

deleteApiKey​

1. 接口描述​

接口功能:删除 API Key

接口声明:app.env.deleteApiKey(keyId): Promise<Object>

版本提示

自 v5.1.0 起支持此接口

删除指定云开发环境下的某个 API Key 服务端访问凭证。删除后该 Key 对应的 Token 将被吊销,已使用该 Key 发起的请求将失败。该操作具有幂等性,若指定的 API Key 不存在则直接返回成功。

2. 输入参数​

字段必填类型说明
KeyId是String密钥唯一标识符,可通过查询密钥列表接口获取

3. 返回结果​

字段类型说明
RequestIdString请求唯一标识

4. 示例代码​

const CloudBase = require('@cloudbase/manager-node')
const app = new CloudBase({ secretId: 'Your SecretId', secretKey: 'Your SecretKey', envId: 'your-env-id' })

async function test() {
// 先查询 API Key 列表
const listRes = await app.env.describeApiKeyList({ KeyType: 'api_key' })
if (listRes.Data?.length) {
const res = await app.env.deleteApiKey(listRes.Data[0].KeyId)
console.log(res.RequestId)
}
}

test()