跳到主要内容

登录配置

getLoginConfig

1. 接口描述

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

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

版本提示

自 v5.1.0 起支持此接口

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

2. 输入参数

3. 返回结果

字段必填类型说明
RequestIdString请求唯一标识
EmailLoginBoolean是否开启邮箱登录方式
AnonymousLoginBoolean是否开启匿名登录方式
UserNameLoginBoolean是否开启用户名密码登录方式
PhoneNumberLoginBoolean是否开启手机号短信登录方式
SmsVerificationConfigSmsVerificationConfig短信验证码发送配置,见下方说明
MfaConfigMfaConfigMFA 多因子认证登录配置
PwdUpdateStrategyPwdUpdateStrategy密码修改策略配置

SmsVerificationConfig

字段必填类型说明
TypeString短信发送通道类型,如 default
NameString自定义 APIs 数据源名称
MethodString调用方法
SmsDayLimitNumber每日发送限额,-1 表示不限制

MfaConfig

字段必填类型说明
OnStringMFA 因子认证,TRUEFALSE
SmsString短信验证,TRUEFALSE
EmailString邮箱验证,TRUEFALSE
RequiredBindPhoneString强制绑定手机号,TRUEFALSE

PwdUpdateStrategy

字段必填类型说明
FirstLoginUpdateBoolean首次登录是否强制修改密码
PeriodUpdateBoolean是否开启定期强制修改密码
PeriodValueNumber定期修改密码的周期值
PeriodTypeString周期时间单位,如 YEARMONTHWEEK

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. 输入参数

字段必填类型说明
PhoneNumberLoginBoolean手机号短信登录开关
EmailLoginBoolean邮箱登录开关
UserNameLoginBoolean用户名密码登录开关
AnonymousLoginBoolean匿名登录开关
SmsVerificationConfigObject短信验证码发送配置,不传则不修改当前配置,结构见 SmsVerificationConfig
MfaConfigObjectMFA 多因子认证登录配置,不传则不修改当前配置,结构见 MfaConfig
PwdUpdateStrategyObject密码更新策略配置,不传则不修改当前配置,结构见 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. 输入参数

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

3. 返回结果

字段必填类型说明
RequestIdString请求唯一标识
IdString客户端的唯一标识符(Client ID)
CreatedAtString客户端的创建时间,ISO 8601 格式
UpdatedAtString客户端信息的最后修改时间,ISO 8601 格式
RefreshTokenExpiresInNumberRefresh Token 的有效期,单位为秒
AccessTokenExpiresInNumberAccess Token 的有效期,单位为秒
MaxDeviceNumber单个用户允许同时登录的最大会话数量,-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. 输入参数

字段必填类型说明
IdString客户端唯一标识符(Client ID)
RefreshTokenExpiresInNumberRefresh Token 的有效期,单位为秒,取值范围 1800~2592000,默认 2592000
AccessTokenExpiresInNumberAccess Token 的有效期,单位为秒,最小 1800,默认 7200,应小于 RefreshTokenExpiresIn
MaxDeviceNumber单个用户允许同时登录的最大会话数量,-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. 返回结果

字段必填类型说明
RequestIdString请求唯一标识
TotalNumber认证源总数
DataArray<Provider>三方认证源列表

Provider

字段必填类型说明
IdString身份源唯一标识,2~32 位小写字母和数字
ConfigObject身份源安全认证配置,见 ProviderConfig
NameLocalizedMessage身份源名称,支持国际化多语言配置
PictureString身份源图标 URL
HomepageString身份源官方主页地址
ProviderTypeString身份源协议类型:OAUTHOIDCSAMLCUSTOMEMAIL
OnString身份源启用状态,TRUEFALSE
AutoSignUpWithProviderUserString是否自动注册系统用户,TRUEFALSEUNSPECIFIED
TransparentModeString是否开启信息透传模式,TRUEFALSE
ReuseUserIdString是否复用第三方用户 ID,TRUEFALSE
EmailConfigEmailConfig邮箱身份源专项配置,仅 ProviderType 为 EMAIL 时有效
DescriptionLocalizedMessage身份源描述,支持国际化多语言配置
AutoSignInWhenEmailMatchString是否开启邮箱自动关联登录,TRUEFALSEUNSPECIFIED
AutoSignInWhenPhoneNumberMatchString是否开启手机号码自动关联登录,TRUEFALSEUNSPECIFIED

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 为 OIDCOAUTH 时必须填写,可在对应平台的开发者控制台中获取
ClientSecretStringOIDC/OAUTH 时必填在第三方身份提供方注册的应用客户端密钥,与 ClientId 配合使用,用于在 Token 端点进行身份验证。当 ProviderType 为 OIDCOAUTH 时必须填写,请妥善保管,避免泄露
RedirectUriStringOIDC/OAUTH 时必填OAuth 授权完成后第三方平台回调的地址,需与在第三方平台注册的回调地址完全一致。当 ProviderType 为 OIDCOAUTH 时必须填写。示例:https://envId.ap-shanghai.tcb-api.tencentcloudapi.com/auth/v1/callback
ScopeStringOIDC/OAUTH 时必填向第三方申请的权限范围,多个 scope 空格分隔。当 ProviderType 为 OIDCOAUTH 时必须填写,OIDC 场景下通常至少包含 openid,如需获取邮箱或手机号可追加 emailphone 等。若已填写 Issuer 且未指定 Scope,将自动使用 Discovery 返回的 scopes_supported。示例:openid email name
AuthorizationEndpointStringOIDC/OAUTH 时必填授权端点地址,用于引导用户跳转至第三方登录页面。当 ProviderType 为 OIDCOAUTH 时必须填写。若已填写 Issuer,该字段将通过 Discovery 自动获取
TokenEndpointStringOIDC/OAUTH 时必填Token 端点地址,用于通过授权码(code)换取 Access Token 和 ID Token。当 ProviderType 为 OIDCOAUTH 时必须填写。若已填写 Issuer,该字段将通过 Discovery 自动获取
UserinfoEndpointStringOIDC/OAUTH 时按需用户信息端点地址,用于通过 Access Token 获取用户基本信息(昵称、头像、邮箱等)。当 ProviderType 为 OIDCOAUTH 且需要获取用户详细信息时填写。若已填写 Issuer,该字段将通过 Discovery 自动获取
ResponseTypeString授权请求的响应类型。可选值:code(授权码模式,推荐)、token(隐式模式)、id_token(直接返回 ID Token)。ProviderType 为 OIDC 时默认 id_token,其他类型默认 code
SignoutEndpointString单点退出端点地址。配置后,用户退出时将跳转至该地址使第三方 IDP 登录态失效。不填则退出时仅清除本平台登录态
TokenEndpointAuthMethodStringToken 端点的客户端身份验证方式。可选值: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(自动发现端点),或手动填写 ClientIdClientSecretRedirectUriScopeAuthorizationEndpointTokenEndpointJwksUri
  • OAUTH 类型:必填 ClientIdClientSecretRedirectUriScopeAuthorizationEndpointTokenEndpoint
  • SAML 类型:必填 SamlMetadata
  • 其他类型(CUSTOM、EMAIL 等):所有字段均为可选

RequestParametersMap

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

字段必填类型说明
ClientIdStringOAuth 标准 client_id 的映射字段名,如微信对应 appid
ClientSecretStringOAuth 标准 client_secret 的映射字段名
RedirectUriStringOAuth 标准 redirect_uri 的映射字段名
GrantTypeStringOAuth 授权模式匹配的参数字段名
ClientCredentialsStringOAuth 授权模式类型,如 authorization_codeclient_credentials
AccessTokenStringOAuth 返回中 access_token 的映射字段名
ExpiresInStringOAuth 返回中 Token 有效期的映射字段名
AuthPositionStringOAuth 获取 Token 时认证信息的请求位置:URLHeadersBody
RegisterUserRoleIdString身份源注册用户时自动绑定的角色 ID
RegisterUserAutoLicenseString注册用户时是否自动授予许可证,TRUEFALSE,默认 FALSE
RegisterUserTypeString注册用户时的用户类型:externalUser(外部用户)或 internalUser(内部用户),默认 externalUser

ResponseParametersMap

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

字段必填类型说明
SubString用户唯一标识(sub)的映射字段名,对应 OIDC 标准 sub
NameString用户名称的映射字段名,对应 OIDC 标准 name
PictureString用户头像的映射字段名,需公网可访问 URL
UsernameString用户登录名的映射字段名,对应 OIDC 标准 preferred_username
EmailString用户邮箱的映射字段名,对应 OIDC 标准 email
PhoneNumberString用户手机号的映射字段名,对应 OIDC 标准 phone_number
GroupsString用户角色/分组的映射字段名,对应 OIDC 标准 groups,支持字符串数组

LocalizedMessage

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

字段必填类型说明
MessageString默认展示的文本
LocalizedArray<MessageLocalized>针对每种语言的展示文字列表

MessageLocalized

字段必填类型说明
MessageString该语言的展示文本
LocaleString语言标识

示例

{
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. 输入参数

字段必填类型说明
NameLocalizedMessage身份源显示名称,支持国际化多语言配置
ProviderTypeString身份源协议类型:OAUTHOIDCSAMLWX_MICRO_APPWX_QRCODE_MICRO_APPWX_CLOUDBASE_MICRO_APPWX_MPWX_OPENWX_WORK_INTERNALWX_WORK_AGENTWX_WORK_THIRD_PARTYWX_WORK_THIRD_PARTY_ASSOCIATIONCUSTOMEMAIL
IdString身份源唯一标识符,2~32 位小写字母和数字,不填则系统自动生成
PictureString身份源图标 URL,建议 64×64 SVG 格式
HomepageString身份源官方主页地址
ConfigObject身份认证源协议连接配置,结构见 ProviderConfig
TransparentModeString是否开启透传模式,TRUEFALSEUNSPECIFIED,默认 FALSE
OnString身份源启用状态,TRUEFALSEUNSPECIFIED,默认 TRUE
DescriptionLocalizedMessage身份源描述,支持国际化多语言配置
ReuseUserIdString是否复用第三方用户 ID 作为平台用户 ID,TRUEFALSEUNSPECIFIED
AutoSignInWhenEmailMatchString是否开启邮箱自动关联登录,默认 FALSE
AutoSignInWhenPhoneNumberMatchString是否开启手机号自动关联登录,默认 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. 输入参数

字段必填类型说明
IdString身份源唯一标识符,2~32 位小写字母和数字
NameLocalizedMessage身份源显示名称,支持国际化多语言配置
PictureString身份源图标 URL
HomepageString身份源官方主页地址
ProviderTypeString身份源协议类型
ConfigObject身份认证源协议连接配置,结构见 ProviderConfig
TransparentModeString是否开启透传模式,开启后 ReuseUserId 强制 TRUE,AutoSignUpWithProviderUser 强制 FALSE
OnString身份源启用状态,TRUEFALSEUNSPECIFIED,默认 TRUE
DescriptionLocalizedMessage身份源描述,支持国际化多语言配置
ReuseUserIdString是否复用第三方用户 ID,TRUEFALSEUNSPECIFIED
AutoSignUpWithProviderUserString是否自动注册系统用户,TRUEFALSEUNSPECIFIED
EmailConfigEmailConfig邮箱身份源专项配置,仅 ProviderType 为 EMAIL 时有效
AutoSignInWhenEmailMatchString是否开启邮箱自动关联登录,默认 FALSE
AutoSignInWhenPhoneNumberMatchString是否开启手机号自动关联登录,默认 TRUE

EmailConfig

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

字段必填类型说明
OnString是否采用平台默认代发,TRUEFALSE
SmtpConfigSmtpConfigSMTP 配置
TemplateConfigEmailTemplateConfig邮件模板配置

SmtpConfig

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

字段必填类型说明
SenderAddressString发件人邮箱地址,作为邮件的 From 头显示
ServerHostStringSMTP 服务器域名或 IP 地址,如 smtp.example.com
ServerPortNumberSMTP 服务器端口,常用值:465(SSL)、587(STARTTLS)、25
AccountUsernameStringSMTP 登录账号,通常为发件人邮箱地址或 SMTP 用户名
AccountPasswordStringSMTP 登录密码或授权码,请妥善保管,避免泄露
SecurityModeString加密模式:AUTO(自动选择)、SSLSTARTSSLNO_SSL,默认 AUTO

EmailTemplateConfig

邮件模板配置。

字段必填类型说明
RegisterSignInLocalizedTemplate注册/登录模板
DefaultTplLocalizedTemplate默认模板

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

LocalizedTemplate

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

字段必填类型说明
ZhCNString中文模板,HTML 格式。必须包含 {{.VerificationCode}} 变量,可选变量有 {{.Usage}}{{.ExpireMinutes}}{{.Email}}。禁止包含 scriptjavascriptonclickonloadiframelink 标签及 CSS expression、CSS url()
EnUSString英文模板,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. 输入参数

字段必填类型说明
IdString认证源 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. 输入参数

字段必填类型说明
KeyTypeString密钥类型:api_keypublish_key
KeyNameString密钥自定义名称,建议填写描述性名称,如 server-prod
ExpireInNumber密钥有效期,单位秒,最短 7200 秒。0 或不设置表示永不过期

3. 返回结果

字段必填类型说明
RequestIdString请求唯一标识
KeyIdStringAPI Key 唯一标识符
NameStringAPI Key 名称
ApiKeyStringAPI Key 令牌值(JWT 格式),仅在创建时返回完整明文
ExpireAtString过期时间,ISO 8601 格式
CreateAtString创建时间,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. 输入参数

字段必填类型说明
KeyTypeString密钥类型过滤:api_keypublish_key,默认 api_key
PageNumberNumber分页页码,从 1 开始,默认 1
PageSizeNumber每页条数

3. 返回结果

字段必填类型说明
RequestIdString请求唯一标识
DataArray<ApiKeyToken>API Key 列表
TotalNumber总数

ApiKeyToken

字段必填类型说明
KeyIdStringAPI Key 的唯一标识符
NameStringAPI Key 的名称
ApiKeyStringAPI Key 的令牌值,api_key 类型列表查询时脱敏处理
ExpireAtString过期时间,ISO 8601 格式
CreateAtString创建时间,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. 输入参数

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

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()