登录配置
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 | 否 | MfaConfig | MFA 多因子认证登录配置 |
| PwdUpdateStrategy | 否 | PwdUpdateStrategy | 密码修改策略配置 |
SmsVerificationConfig
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| Type | 否 | String | 短信发送通道类型,如 default |
| Name | 否 | String | 自定义 APIs 数据源名称 |
| Method | 否 | String | 调用方法 |
| SmsDayLimit | 否 | Number | 每日发送限额,-1 表示不限制 |
MfaConfig
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| On | 否 | String | MFA 因子认证,TRUE 或 FALSE |
| Sms | 否 | String | 短信验证,TRUE 或 FALSE |
| 否 | 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 | 否 | Object | MFA 多因子认证登录配置,不传则不修改当前配置,结构见 MfaConfig |
| PwdUpdateStrategy | 否 | Object | 密码更新策略配置,不传则不修改当前配置,结构见 PwdUpdateStrategy |
3. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| RequestId | String | 请求唯一标识 |
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 | 否 | Number | Refresh Token 的有效期,单位为秒 |
| AccessTokenExpiresIn | 否 | Number | Access 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 | 否 | Number | Refresh Token 的有效期,单位为秒,取值范围 1800~2592000,默认 2592000 |
| AccessTokenExpiresIn | 否 | Number | Access Token 的有效期,单位为秒,最小 1800,默认 7200,应小于 RefreshTokenExpiresIn |
| MaxDevice | 否 | Number | 单个用户允许同时登录的最大会话数量,-1 不限制,0 按 User-Agent 区分,1~50 为精确限制 |
3. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| RequestId | String | 请求唯一标识 |
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
| 字段 | 类型 | 必选 | 说明 |
|---|---|---|---|
| Issuer | String | OIDC 时建议填写 | 身份提供方的唯一标识符(Issuer URL),用于验证 ID Token 中的 iss 字段。仅当 ProviderType 为 OIDC 时需要填写,值通常为第三方 OIDC 服务的根地址,如 https://accounts.google.com。填写后平台将自动通过 /.well-known/openid-configuration 发现并填充 AuthorizationEndpoint、TokenEndpoint、UserinfoEndpoint、JwksUri 等端点地址 |
| JwksUri | String | OIDC 时需要 | JSON Web Key Set 地址,用于获取公钥以验证 ID Token 签名。仅当 ProviderType 为 OIDC 时需要填写。若已填写 Issuer,该字段将通过 Discovery 自动获取,无需手动填写 |
| ClientId | String | OIDC/OAUTH 时必填 | 在第三方身份提供方注册的应用客户端 ID。当 ProviderType 为 OIDC 或 OAUTH 时必须填写,可在对应平台的开发者控制台中获取 |
| ClientSecret | String | OIDC/OAUTH 时必填 | 在第三方身份提供方注册的应用客户端密钥,与 ClientId 配合使用,用于在 Token 端点进行身份验证。当 ProviderType 为 OIDC 或 OAUTH 时必须填写,请妥善保管,避免泄露 |
| RedirectUri | String | OIDC/OAUTH 时必填 | OAuth 授权完成后第三方平台回调的地址,需与在第三方平台注册的回调地址完全一致。当 ProviderType 为 OIDC 或 OAUTH 时必须填写。示例:https://envId.ap-shanghai.tcb-api.tencentcloudapi.com/auth/v1/callback |
| Scope | String | OIDC/OAUTH 时必填 | 向第三方申请的权限范围,多个 scope 空格分隔。当 ProviderType 为 OIDC 或 OAUTH 时必须填写,OIDC 场景下通常至少包含 openid,如需获取邮箱或手机号可追加 email、phone 等。若已填写 Issuer 且未指定 Scope,将自动使用 Discovery 返回的 scopes_supported。示例:openid email name |
| AuthorizationEndpoint | String | OIDC/OAUTH 时必填 | 授权端点地址,用于引导用户跳转至第三方登录页面。当 ProviderType 为 OIDC 或 OAUTH 时必须填写。若已填写 Issuer,该字段将通过 Discovery 自动获取 |
| TokenEndpoint | String | OIDC/OAUTH 时必填 | Token 端点地址,用于通过授权码(code)换取 Access Token 和 ID Token。当 ProviderType 为 OIDC 或 OAUTH 时必须填写。若已填写 Issuer,该字段将通过 Discovery 自动获取 |
| UserinfoEndpoint | String | OIDC/OAUTH 时按需 | 用户信息端点地址,用于通过 Access Token 获取用户基本信息(昵称、头像、邮箱等)。当 ProviderType 为 OIDC 或 OAUTH 且需要获取用户详细信息时填写。若已填写 Issuer,该字段将通过 Discovery 自动获取 |
| ResponseType | String | 否 | 授权请求的响应类型。可选值:code(授权码模式,推荐)、token(隐式模式)、id_token(直接返回 ID Token)。ProviderType 为 OIDC 时默认 id_token,其他类型默认 code |
| SignoutEndpoint | String | 否 | 单点退出端点地址。配置后,用户退出时将跳转至该地址使第三方 IDP 登录态失效。不填则退出时仅清除本平台登录态 |
| TokenEndpointAuthMethod | String | 否 | Token 端点的客户端身份验证方式。可选值:CLIENT_SECRET_POST(凭证放在请求 Body 中)、CLIENT_SECRET_BASIC(凭证通过 HTTP Basic Auth Header 传递),默认 CLIENT_SECRET_POST |
| SamlMetadata | String | SAML 时必填 | SAML 身份提供方的 Metadata XML 内容,包含实体 ID、SSO 端点地址、签名证书等,最大 10KB。仅当 ProviderType 为 SAML 时填写,通常可从第三方 IDP 管理控制台下载 |
| RequestParametersMap | RequestParametersMap | 否 | 请求参数映射配置,用于处理非标准 OAuth 协议的参数转换。默认严格遵循 OAuth 2.0 标准,对接微信、企业微信等非标准平台时需配置 |
| ResponseParametersMap | ResponseParametersMap | 否 | 响应参数映射配置,用于处理非标准 OAuth 协议的响应参数转换。对接微信等非标准平台时,可将第三方返回的字段映射为平台标准字段 |
- OIDC 类型:建议填写
Issuer(自动发现端点),或手动填写ClientId、ClientSecret、RedirectUri、Scope、AuthorizationEndpoint、TokenEndpoint、JwksUri - OAUTH 类型:必填
ClientId、ClientSecret、RedirectUri、Scope、AuthorizationEndpoint、TokenEndpoint - SAML 类型:必填
SamlMetadata - 其他类型(CUSTOM、EMAIL 等):所有字段均为可选
RequestParametersMap
请求参数映射,用于非标准 OAuth 协议的参数转换。默认可为空,对接国内平台(如微信、企业微信)时需配置。
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| ClientId | 否 | String | OAuth 标准 client_id 的映射字段名,如微信对应 appid |
| ClientSecret | 否 | String | OAuth 标准 client_secret 的映射字段名 |
| RedirectUri | 否 | String | OAuth 标准 redirect_uri 的映射字段名 |
| GrantType | 否 | String | OAuth 授权模式匹配的参数字段名 |
| ClientCredentials | 否 | String | OAuth 授权模式类型,如 authorization_code、client_credentials |
| AccessToken | 否 | String | OAuth 返回中 access_token 的映射字段名 |
| ExpiresIn | 否 | String | OAuth 返回中 Token 有效期的映射字段名 |
| AuthPosition | 否 | String | OAuth 获取 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 |
| 否 | 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. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| RequestId | String | 请求唯一标识 |
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 | 否 | SmtpConfig | SMTP 配置 |
| TemplateConfig | 否 | EmailTemplateConfig | 邮件模板配置 |
SmtpConfig
自有 SMTP 邮件服务器连接配置。
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| SenderAddress | 是 | String | 发件人邮箱地址,作为邮件的 From 头显示 |
| ServerHost | 是 | String | SMTP 服务器域名或 IP 地址,如 smtp.example.com |
| ServerPort | 是 | Number | SMTP 服务器端口,常用值:465(SSL)、587(STARTTLS)、25 |
| AccountUsername | 是 | String | SMTP 登录账号,通常为发件人邮箱地址或 SMTP 用户名 |
| AccountPassword | 是 | String | SMTP 登录密码或授权码,请妥善保管,避免泄露 |
| 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. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| RequestId | String | 请求唯一标识 |
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. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| RequestId | String | 请求唯一标识 |
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 | 是 | String | API Key 唯一标识符 |
| Name | 是 | String | API Key 名称 |
| ApiKey | 否 | String | API 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 | 否 | String | API Key 的唯一标识符 |
| Name | 否 | String | API Key 的名称 |
| ApiKey | 否 | String | API 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. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| RequestId | String | 请求唯一标识 |
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()