特点

CabloyJS内置了短信认证模块a-authsms,可以实现手机短信认证的功能。主要有以下特性:

  1. 提炼出通用的手机短信验证机制,可以通过提供者的方式快速对接各类短信服务提供商
  2. 通过手机短信验证实现用户注册用户登录用户认证等功能
  3. 内置短信服务提供者
    • 测试版本:不需要开通实际的短信服务,即可进行开发调试
    • 阿里云:只需填写参数即可快速对接部署阿里云短信服务
    • 持续增加对第三方服务的支持

截图

1. 用户注册

1

2. 用户登录

2

3. Kitchen-sink - 短信认证

3

4. Kitchen-sink - 测试短信服务提供者

4

如何使用

1. 配置短信认证

默认情况下,模块提供的短信认证会自动启用,可通过以下途径调整次序禁用

1.1 调整次序

比如,我们现在有两个用户认证方式:a-authsimple/a-authsms,显示效果如下:

5

我们希望a-authsms优先显示,那么只需修改项目的配置文件:

src/backend/config/config.local.js

  1. 1 // module config
  2. 2 config.modules = {
  3. 3 ...
  4. 4 'a-auth': {
  5. 5 login:{
  6. 6 providers: [
  7. 7 {
  8. 8 module: 'a-authsms',
  9. 9 provider: 'authsms',
  10. 10 },
  11. 11 {
  12. 12 module: 'a-authsimple',
  13. 13 provider: 'authsimple',
  14. 14 },
  15. 15 ],
  16. 16 },
  17. 17 },
  18. 18 ...
  19. 19 };

1.2 禁用

如果我们想禁用a-authsimple,参见:认证基本概念

1.3 最终显示效果

6

2. 配置短信服务提供者

2.1 测试短信服务提供者

默认情况下,使用内置的测试短信服务提供者,当用户输入手机号码,点击发送认证码按钮时,会自动在控制台打印一个随机的认证码,从而方便开发调试,效果如下:

7

2.2 阿里云短信服务提供者

模块还内置了阿里云短信服务提供者,只需修改项目的配置文件即可激活:

  1. 1 // module config
  2. 2 config.modules = {
  3. 3 ...
  4. 4 'a-authsms': {
  5. 5 sms: {
  6. 6 providers: {
  7. 7 aliyun: {
  8. 8 title: 'AliYun',
  9. 9 current: true,
  10. 10 accessKeyId: 'LTAIVnmixsvYC4cdF',
  11. 11 secretAccessKey: 'V5F7Ke7w8QgZVpcvbYcHq32FKwt2ew',
  12. 12 endpoint: 'https://dysmsapi.aliyuncs.com',
  13. 13 apiVersion: '2017-05-25',
  14. 14 signName: 'Cabloy商店',
  15. 15 templates: {
  16. 16 mobileVerify: 'SMS_152015055',
  17. 17 signup: 'SMS_152015055',
  18. 18 signin: 'SMS_152015055',
  19. 19 },
  20. 20 },
  21. 21 test: {
  22. 22 title: 'Test',
  23. 23 current: false,
  24. 24 },
  25. 25 },
  26. 26 },
  27. 27 },
  28. 28 };
  29. 29 ...

signNametemplates是与阿里云短信服务提供者相关的参数,具体数据请参照阿里云的提示获取

mobileVerifysignupsignin是预定义的场景,可以针对不同的场景指定单独的消息模板