Skip to content

短信连接器

部分实现 -- 基础设施已完成,暂无内置短信 Provider 实现。连接器的 CRUD 管理和测试功能可正常使用,但需要开发具体的短信 Provider 后才能实际发送短信。

概述

短信连接器用于集成短信发送服务,使 Code Bird Cloud 能够向用户发送验证码短信。当用户使用手机号进行注册、登录或密码重置时,系统会通过已配置的短信连接器发送包含验证码的短信。

使用场景

短信连接器在以下场景中发挥作用:

场景说明
手机号注册验证用户使用手机号注册时,系统发送验证码短信验证手机号的有效性
手机验证码登录用户选择 "手机号 + 验证码" 方式登录时,系统发送一次性验证码
忘记密码用户通过手机号重置密码时,系统发送验证码短信验证身份

常见短信 Provider

以下是可以集成的常见短信发送服务:

Provider说明
阿里云 SMS阿里云短信服务,国内覆盖广、到达率高
Twilio全球化短信服务,覆盖 180+ 国家和地区
腾讯云 SMS腾讯云短信服务,适合国内用户
华为云 SMS华为云短信服务
AWS SNSAmazon Simple Notification Service,适合 AWS 生态用户

配置示例

以下是创建短信连接器的配置示例(以阿里云 SMS 为例):

json
{
  "connector_id": "aliyun-sms",
  "type": "Sms",
  "config": {
    "access_key_id": "your_access_key_id",
    "access_key_secret": "your_access_key_secret",
    "sign_name": "你的短信签名",
    "template_code": "SMS_123456789"
  },
  "enabled": true
}

配置字段说明

不同的短信 Provider 所需的配置字段不同,以下以阿里云 SMS 为例:

字段类型必填说明
access_key_idstring阿里云 AccessKey ID
access_key_secretstring阿里云 AccessKey Secret
sign_namestring短信签名名称(需在阿里云 SMS 控制台中申请并审核通过)
template_codestring短信模板 Code(需在阿里云 SMS 控制台中创建并审核通过)

使用阿里云 SMS 前,需要在阿里云控制台中完成短信签名和模板的申请和审核。模板内容中需要包含验证码变量(如 ${code})。

API 参考

创建短信连接器

POST /api/v1/connectors
Content-Type: application/json

{
  "connector_id": "aliyun-sms",
  "type": "Sms",
  "config": {
    "access_key_id": "LTAI5tExample",
    "access_key_secret": "your-secret-key",
    "sign_name": "CodeBird",
    "template_code": "SMS_123456789"
  },
  "enabled": true
}

更新短信连接器

PATCH /api/v1/connectors/:id
Content-Type: application/json

{
  "config": {
    "access_key_id": "new_access_key_id",
    "access_key_secret": "new_access_key_secret",
    "sign_name": "CodeBird",
    "template_code": "SMS_987654321"
  }
}

测试短信连接器

配置完成后,建议通过测试端点验证配置是否正确。系统会尝试发送一条测试短信。

POST /api/v1/connectors/:id/test

删除短信连接器

DELETE /api/v1/connectors/:id

删除正在使用的短信连接器会导致手机验证码功能不可用。请确保在删除前已从登录体验配置中移除对手机验证码的依赖。

与登录体验的集成

短信连接器配置并启用后,需要在登录体验配置中启用对应的登录/注册方式才能生效:

  1. 在管理后台进入 "登录体验" 配置页面
  2. 在登录方式中添加 "手机号" 标识符,并启用 "验证码登录"
  3. 在注册设置中添加 "手机号" 标识符,并根据需要启用 "需要验证"
  4. 保存配置

配置完成后,登录页面将展示手机验证码登录选项,注册页面将支持手机号注册和验证。

相关文档

Released under the MIT License.