www_site/docs/sms-verification.md

29 lines
1.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 手机短信验证配置
本项目使用阿里云号码认证服务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`