第四章:AI 实战开发21. 切换为阿里云短信

切换为阿里云短信 - 接入真实短信服务

大家好,这节课我们来讲一下短信登录。

为什么要接入短信服务

我们的软件现在用的是一个模拟的短信,我们输入手机号,然后点击获取验证码,会在服务端的控制台输出模拟的短信。

⚠️

模拟短信的问题

当我们的软件要发布出去的时候,肯定不能用这种方式,所以我们需要去接入一些第三方的短信接口,来帮助我们把短信发送到用户的手机上。

查看配置文件

我们先打开后端服务的配置。

找到配置文件

在这个 account-backend 目录下面,然后找到这个 development.env

配置文件说明:

  • development.env - 开发环境的配置
  • development.env.example - 示例配置
  • production.env - 生产环境的配置(最终需要修改这个配置,然后发布到线上)

修改开发环境配置

我们先看一下开发环境的配置吧,我们先改开发环境。

开发环境修改好之后,我们在开发环境去做一个测试,测试通过然后再去修改生产环境。

查看短信配置

我们先来看一下这个配置文件,短信的配置是从这里开始的:

1. SMS_PROVIDER(短信服务提供商)

SMS_PROVIDER=mock

这里用的是 mock,也就是我们当前的方式。我们需要把它改成阿里云:

SMS_PROVIDER=aliyun

改成阿里云的拼音就行,这个是我们之前在做短信相关功能的时候约定的,应该是能够在代码里面搜到。

代码逻辑

在短信服务配置中,会判断是 mock 还是用的是阿里云,所以我们把它改成 aliyun 就行,然后逻辑走到这个地方的时候,就会使用阿里云相关的配置。

2. SMS_CODE_EXPIRE_TIME(验证码过期时间)

SMS_CODE_EXPIRE_TIME=300

默认是 5 分钟过期,也就是用户收到验证码之后,要在 5 分钟之内填写验证码,超过 5 分钟,这个验证码就失效了。

3. SMS_SEND_INTERVAL(验证码发送间隔)

SMS_SEND_INTERVAL=10

默认是 10 秒,也就是说,用户在发送完验证码之后,不能在 10 秒内再次发送。

这个时间其实我们可以给他适当延长一点,因为我们界面上默认是 1 分钟,我们也改一下:

SMS_SEND_INTERVAL=60

改成 60 秒。

4. 阿里云短信配置

下面是阿里云短信的配置,这个配置需要到阿里云里面去获取:

  • ALIYUN_ACCESS_KEY - 访问密钥
  • ALIYUN_ACCESS_KEY_SECRET - 访问密钥密文(相当于就是一个账号密码,但不是我们登录阿里云的账号密码,是我们在注册登录完阿里云之后,然后在阿里云里面去创建的)
  • ALIYUN_SMS_SIGN_NAME - 签名名称
  • ALIYUN_SMS_TEMPLATE_CODE - 模板编码

后面两个也是我们在阿里云里面去创建的,待会我们打开阿里云去详细解释一下。

阿里云账号注册与认证

现在我们来打开阿里云吧。

注册/登录阿里云

搜索”阿里云”,打开阿里云之后,如果没有账号的话,可以先注册一下;如果有账号的话就直接登录。

注册的时候:

  • 填写手机号
  • 输入验证码
  • 设置账号名称和密码(都是自定义的)

实名认证

注册完之后,应该还是需要做一个实名认证。

  • 如果有企业身份的,最好用企业身份去做认证
  • 如果没有企业身份的话,可以先用个人身份先认证一下
⚠️

关于企业认证

但是阿里云的短信好像默认是需要企业身份才能够去使用的,所以我们最好去注册一个个体户,注册一个工作室就行了。

关于注册工作室的相关事项以及它的好处,我们在最后面的课程里面可以给大家再去讲一下。

配置阿里云短信服务

登录成功之后,然后在上面搜索”短信”,然后打开短信的控制台。

第一步:申请资质

进入资质管理

进入控制台之后,我们先点击这里的”资质”。

这个资质其实和你的企业身份是对应的,也就是说,阿里认为你当前的身份可以给用户去发短信,所以要先做一个资质的认证。

填写资质信息

点击”添加资质”:

  1. 资质用途 - 默认就选择”自用”
  2. 组织类型 - 选择对应的类型
  3. 资质名称 - 写企业的名称就行,或者说企业名称的缩写(比如说我们注册了一个某某工作室,我们就可以写”某某工作室资质”,这个一般没有什么强制的要求)
  4. 备注 - 可以忽略

上传证件

然后下面要做一个认证:

  1. 证件类型 - 一般就选择”企业的营业执照”
  2. 上传证件 - 上传我们的企业的营业执照或者是个体户的一个执照
  3. 法人信息 - 输入法人相关的信息
  4. 管理员信息 - 一般我们自己去注册的个体户或者是一人公司的话,管理员其实就是法人,把自己的信息填进去就行了

然后最后填好之后,直接点”提交申请”。

第二步:创建签名

资质通过之后,然后我们再去申请一个签名。

什么是签名?

签名一般是用来对应自己公司下面的某个具体的业务或者说某个具体的软件。

这样应该也很好理解,因为一个企业下面他可能有多个软件。比如说我们注册了一个企业,然后我们又开发了多个软件,那么我们只需要做一次资质认证,然后在下面去建多个签名,然后第一个签名给某个软件使用,第二个签名给另一个软件使用。

添加签名

我们先点击”添加签名”。

填写签名信息

  1. 适用场景 - 仍然是选择”自用”
  2. 关联的资质名称 - 关联我们刚才新建的(当然要审核通过的,审核通过之后可以再来建这个签名)
  3. 签名来源 - 我们这里可以先选择一个”企事业单位名称”

关于签名来源

因为我们当前的 APP 还没有上线,大概率也还没有注册商标。如果说你已经注册了商标了,也可以选择”注册商标”。

等到后面项目上线之后,我们可以再来新建一个签名,然后选择”已上线的 APP”,然后把签名改成我们 APP 的名称。

  1. 签名名称 - 选择你的企业的全称或者简称,比如说”某某工作室”,就是你的注册的个体户
  2. 场景说明 - 一般我们就写这个短信它是用来干嘛的,比如说”用于某某软件的登录”(但是我写的比较简单,你可以把它扩展一下,具体用于什么业务)

然后点击”提交”。

第三步:创建模板

提交通过之后,然后我们再去建一个模板。

什么是模板?

一般我们的一个签名对应的是一个软件,那么模板就是软件内不同的短信通知。

举个简单的例子,很多软件它除了登录需要用到短信,比如说还有重置密码,或者说一些软件内的活动通知等等,我们就可以在这个地方去建不同业务对应的模板。

那么模板它就是关联到签名上面的。

添加模板

我们点击”添加模板”试一下。

选择模板类型

这里已经预设了几个类型让我们来选择:

  • 验证码
  • 通知短信
  • 推广短信

我们的登录其实就是一个验证码的场景,这里选择”验证码”。

填写模板信息

  1. 签名 - 选择我们前面已经审核通过的签名
  2. 模板名称 - 我们可以根据自己的业务去命名一下,比如说”某某软件登录”
  3. 模板内容 - 验证码模板的内容,我们直接参考一下下面的例子就行了

模板内容示例:

您的验证码为${code},该验证码5分钟内有效,请勿泄露于他人。

这个信息里面有一个占位符,是一个 $ 符号,然后大括号中间是一个 code,这个 code 就是我们的验证码。

后续用户收到的短信就是:前面是一个签名,然后后面就是”您的验证码为实际的验证码,该验证码5分钟内有效,请勿泄露于他人”。

  1. 变量属性 - 我们看到这个地方,它自动给我们加了一个 code,属性我们一般就选择”仅数字”,因为我们的验证码一般来讲就是纯数字的

填写场景说明

这里有一个场景的说明需要填一下:

请描述短信模板的发送场景,如短信发送对象、发送目的等。若短信模板中带有变量,建议您在此提供短信完整的示例提供参考。

那么我们的场景其实就可以这样去描述:

用于某某软件的登录。
短信发送的对象是这个软件的用户,发送的目的是用户登录。

示例:您的验证码为123456,该验证码5分钟内有效,请勿泄露于他人。

若短信中带有变量,我们的短信中其实是带有变量的,我们直接在此提供一个完整的参考。

然后最后将完整的信息填在这个地方,最后点击”AI 检测并且提交”。

如果有问题,提交之后会提示,我们按照提示去修改就行了。

配置到项目中

短信的资质、签名和模板都审核通过之后,我们就可以把相关的信息填写到我们的这个配置中。

配置签名和模板

配置 SIGN_NAME(签名名称)

找到签名管理中签名的名称,比如说这个”某某软件工作室”,我们点开之后,然后复制一下,复制完了之后粘贴到配置文件中:

ALIYUN_SMS_SIGN_NAME=某某软件工作室

配置 TEMPLATE_CODE(模板编码)

我们找到模板,然后找到我们之前创建成功的模板,然后找到后面的对应的模板 code,复制,复制完了之后粘贴到配置文件中:

ALIYUN_SMS_TEMPLATE_CODE=SMS_xxxxxxxx

这两个配置好之后,后续短信接口就可以通过这两个配置,然后找到我们对应的一个签名和模板,然后去发送短信。

配置 AccessKey

那么现在还有上面的这个 AccessKey 和 AccessKey Secret,这个值的话,我们需要到另一个地方去创建。

进入 AccessKey 管理

把鼠标放到自己的头像上,然后下面有一个 “AccessKey”,点击之后,我们选择”继续使用云账号 AccessKey”。

创建 AccessKey

然后在这里去创建一个 AccessKey,然后这里需要去验证一下。

验证之后,然后就创建成功了。

保存密钥

我们需要把这两个值给它复制过来,然后选择”我已保存好 AccessKey 和 AccessKey Secret”。

🚫

重要提示

需要注意的是,这个窗口关闭之后,然后 Secret 的话就看不到了,所以我们需要保存好。一般来讲我们放在代码里面也不会丢。

配置到文件中:

ALIYUN_ACCESS_KEY=你的AccessKey
ALIYUN_ACCESS_KEY_SECRET=你的AccessKeySecret

测试短信功能

配置好之后,我们就来测试一下。

重启项目

首先重启一下项目。

重启之后,我们打开服务端的控制台,可以看到这里”使用阿里云短信服务”。

第一次测试(失败)

然后回到我们的应用登录页,然后在这个地方去输入手机号码,点击”获取验证码”。

点击之后,提示”短信发送失败”。

我们看到这里提示:“请检查模板内容与模板参数是否匹配”。

检查模板

我们来看一下刚才用的模板,刚才是复制的第一个模板,是”通知短信”,不是”验证码”。

因为我们选择的是验证码,所以我们要换一个,我们用验证码类型的模板。

第二次测试(成功)

使用验证码短信之后,我们再来试一下。

仍然是重启一下,重启之后,再次回到登录页。

然后我这里打开手机的录屏,输入手机号码,点击”获取验证码”。

验证码发送已成功,然后这个地方也提示”验证码发送成功”。

我的手机上现在也收到了短信的验证码,验证码是 185135

点击登录试一下,登录成功了!

短信服务接入成功

现在我们的软件已经可以使用真实的短信服务了。

提交代码

创建新分支

点击左侧的”源代码管理器”,新建一个分支:

v1.0.0-8-接入阿里云短信服务

暂存修改

点击目录右侧的加号,暂存所有修改。

提交代码

点击”提交”,提交信息写:

接入阿里云短信服务

发布分支

然后”发布分支”,推送到远程仓库。

💡

遇到问题?

如果在接入阿里云短信服务时遇到问题,可以扫描下方的微信二维码帮您看下(免费咨询)

小结

通过这节课,我们学会了:

  1. 短信服务的重要性 - 从模拟短信切换到真实短信服务
  2. 阿里云账号注册 - 企业认证的必要性
  3. 短信服务配置流程 - 资质申请 → 签名创建 → 模板创建
  4. 配置管理 - 如何管理开发环境和生产环境的配置
  5. 问题排查 - 如何根据错误提示定位和解决问题

配置文件安全

注意:AccessKey 和 AccessKey Secret 是敏感信息,不要将包含真实密钥的配置文件提交到公开的代码仓库中。建议使用环境变量或配置管理工具来管理这些敏感信息。

下一步

阿里云短信服务接入完成后,接下来我们需要:

👉 下一节:数据库配置调整


相关信息

💬 扫码了解更多信息

客服微信二维码

添加微信

知识星球二维码

加入知识星球