www_site/docs/sms-verification.md

29 lines
1.2 KiB
Markdown
Raw Permalink Normal View History

# 手机短信验证配置
本项目使用阿里云号码认证服务PNVS的服务端短信认证 API
- `SendSmsVerifyCode` 发送并由阿里云生成验证码
- `CheckSmsVerifyCode` 校验验证码
注册页支持邮箱验证和短信验证二选一。短信验证用户可以使用手机号和密码登录;邮箱验证用户可以使用邮箱和密码登录。
## 阿里云控制台准备
1. 开通号码认证服务中的短信认证功能。
2. 创建专用 RAM 用户 AccessKey只授予 `dypns:SendSmsVerifyCode``dypns:CheckSmsVerifyCode` 权限。
3. 在短信认证配置中取得系统赠送的签名名称和验证码模板 Code。签名和模板必须来自同一套 PNVS 资源。
4. 确认短信认证服务有可用套餐或余额。
## 服务端环境变量
```env
PHONE_VERIFICATION_ENABLED=true
ALIBABA_CLOUD_ACCESS_KEY_ID=...
ALIBABA_CLOUD_ACCESS_KEY_SECRET=...
ALIYUN_PNVS_SCHEME_NAME=
ALIYUN_PNVS_SIGN_NAME=控制台中的签名名称
ALIYUN_PNVS_TEMPLATE_CODE=控制台中的模板Code
```
AccessKey 只能写入服务器受保护的环境文件,不要提交到 Git也不要放入前端环境变量。当前实现使用中国大陆手机号和国家码 `86`