• 使用阿里云发送短信验证码


    目录

    一、用户注册登录流程 

    二、使用阿里云发送短信验证码

    ⭐生成密钥 

    ⭐将密钥配置到项目中

    ⚪新建properties文件并填入相应信息

    ⚪pom配置

    ​⚪ 测试代码

    ⚪添加签名

    ​⚪添加短信发送的模板

    💧验证码防盗刷监控


    一、用户注册登录流程 

    二、使用阿里云发送短信验证码

    阿里云-搜索推荐 (aliyun.com)

    进入控制台查看购买的短信的详细信息 

    ⭐生成密钥 

    密钥管理(Access key)

    点击Access key进入密钥管理界面

    点击创建AccessKey

    新建一个密钥

    ⭐将密钥配置到项目中

    ⚪新建properties文件并填入相应信息

    配置的信息分别对应:

    可以在生产时下载的文件中直接查看 

    ⚪pom配置

    1. <dependency>
    2. <groupId>com.aliyungroupId>
    3. <artifactId>aliyun-java-sdk-coreartifactId>
    4. <version>4.6.0version>
    5. dependency>

    ⚪ 测试代码

    • 配置类
    1. import org.springframework.boot.context.properties.ConfigurationProperties;
    2. import org.springframework.context.annotation.PropertySource;
    3. import org.springframework.stereotype.Component;
    4. @Component
    5. classpath:aliyun.properties 注意不要加空格
    6. @PropertySource("classpath:aliyun.properties")
    7. //前缀
    8. @ConfigurationProperties(prefix = "aliyun")
    9. public class AliyunResource {
    10. private String accessKeyID;
    11. private String accessKeySecret;
    12. public String getAccessKeyID() {
    13. return accessKeyID;
    14. }
    15. public void setAccessKeyID(String accessKeyID) {
    16. this.accessKeyID = accessKeyID;
    17. }
    18. public String getAccessKeySecret() {
    19. return accessKeySecret;
    20. }
    21. public void setAccessKeySecret(String accessKeySecret) {
    22. this.accessKeySecret = accessKeySecret;
    23. }
    24. }
    • 用官网给的测试代码进行测试

    需要注意的参数

    1. import com.aliyuncs.DefaultAcsClient;
    2. import com.aliyuncs.IAcsClient;
    3. import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
    4. import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
    5. import com.aliyuncs.exceptions.ClientException;
    6. import com.aliyuncs.exceptions.ServerException;
    7. import com.aliyuncs.profile.DefaultProfile;
    8. import com.google.gson.Gson;
    9. import com.imooc.utils.extend.AliyunResource;
    10. import org.springframework.beans.factory.annotation.Autowired;
    11. import org.springframework.stereotype.Component;
    12. @Component
    13. public class SMSUtils {
    14. @Autowired
    15. public AliyunResource aliyunResource;
    16. public void sendSMS(){
    17. DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou",
    18. aliyunResource.getAccessKeyID(),
    19. aliyunResource.getAccessKeySecret());
    20. IAcsClient client = new DefaultAcsClient(profile);
    21. SendSmsRequest request = new SendSmsRequest();
    22. request.setSignName("阿里云短信测试");
    23. request.setTemplateCode("SMS_154950909");
    24. request.setPhoneNumbers("1234567890");
    25. request.setTemplateParam("{\"code\": \"" + code + "\"}");
    26. try {
    27. SendSmsResponse response = client.getAcsResponse(request);
    28. System.out.println(new Gson().toJson(response));
    29. } catch (ServerException e) {
    30. e.printStackTrace();
    31. } catch (ClientException e) {
    32. System.out.println("ErrCode:" + e.getErrCode());
    33. System.out.println("ErrMsg:" + e.getErrMsg());
    34. System.out.println("RequestId:" + e.getRequestId());
    35. }
    36. }
    37. }

    ⚪添加签名

    ⚪添加短信发送的模板

    • PassportControllerApi  
    1. import com.imooc.grace.result.GraceJSONResult;
    2. import io.swagger.annotations.Api;
    3. import io.swagger.annotations.ApiOperation;
    4. import org.springframework.web.bind.annotation.GetMapping;
    5. @Api(value = "用户注册登录",tags ={"用于用户注册登录的controller"})
    6. public interface PassportControllerApi {
    7. /**
    8. * 获得短信验证码
    9. * @return
    10. */
    11. @ApiOperation(value = "获得短信验证码",notes = "获得短信验证码",httpMethod = "GET")
    12. @GetMapping("/getSMSCode")
    13. public GraceJSONResult getSMSCode();
    14. }
    • PassportController  
    1. import com.imooc.api.controller.user.PassportControllerApi;
    2. import com.imooc.grace.result.GraceJSONResult;
    3. import com.imooc.utils.SMSUtils;
    4. import org.slf4j.Logger;
    5. import org.slf4j.LoggerFactory;
    6. import org.springframework.beans.factory.annotation.Autowired;
    7. import org.springframework.web.bind.annotation.RestController;
    8. @RestController
    9. public class PassportController implements PassportControllerApi {
    10. final static Logger logger = LoggerFactory.getLogger(PassportController.class);
    11. @Autowired
    12. private SMSUtils smsUtils;
    13. @Override
    14. public GraceJSONResult getSMSCode() {
    15. String random = "5201314";
    16. smsUtils.sendSMS("17829172045","5201314");
    17. return GraceJSONResult.ok();
    18. }
    19. }

     运行主启动类,访问地址,完成短信发送

    💧验证码防盗刷监控

    如果开启,这也会可能成为测试时验证码发送失败的原因

     

  • 相关阅读:
    从数字化过渡到智能制造
    数据结构 1.1 初学数据结构
    LeetCode 202
    Metersphere实现UI自动化元素不可点击(部分遮挡)
    QT天气预报项目(写在简历上)
    ESP8266智能家居(5)——开发APP深入篇
    同步FIFO设计实现(8/7)
    如何学好Django?
    【人工智能数学:01概率论】(2) 离散型概率空间
    了解什么是架构基本概念和架构本质
  • 原文地址:https://blog.csdn.net/m0_52982868/article/details/127954039