阿里云创建用户组和用户
首先进入阿里云官网。点击右上角的登录进行登录(没有账号的进行注册登录)
image-20200602073230505搜索框搜索访问控制
进入访问控制页面
image-20200602073841487点击进入管理控制台
进入到RAM访问控制
页面
点击左侧菜单栏的用户组
点击创建用户组
创建新的用户组
按要求填写相关信息
image-20200602074147557点击添加权限
添加短信业务权限
搜索框中搜索短信
添加备注为管理短信服务(SMS)的权限
我们可以点击用户组名称进行查看
image-20200602074555046点击权限管理
查看当前用户组所拥有的权限
接着点击左侧菜单栏用户
进入页面点击创建用户
创建新用户
按照提示填写相关信息。<mark>访问方式选择编程访问</mark>
image-20200602074901526<mark>若开通编程访问,请及时保存 AccessKey 信息,页面关闭后将无法再次获取信息。此时页面会显示AccessKey Secret注意保存。</mark>
image-20200602075140691访问到用户页面。点击添加用户组
选择加入到之前创建的用户组
image-20200602075448605点击查看当前用户
image-20200602075530846点击加入的组
查看当前加入的用户组。可以看到我们已经成功加入之前创建的用户组了
接着点击权限管理
可以看到个人权限为空,点击继承用户组的权限
可以看到我们成功继承了加入的用户组的权限
到此为止我们的阿里用户组和用户已经成功创建!
阿里云开通短信服务
搜索框中搜索短信服务
.由于我开通了,所以直接进入短信服务的控制台。没有开通则选择开通服务。(注意此操作需要付费,所以保证账户里有余额)
点击左侧国内信息
选择模板管理
点击添加模板
按照提示填写相关的信息。模板可以选择在常用的模板库
进行选择
填写完成之后。等待审核通过。
接着点击签名管理
选择添加签名
<mark>适用场景选择验证码</mark>按要求填写信息
image-20200602095757577等待审核通过
快速学习
点击左边菜单的快速学习
我们不填写直接点击查看API Demo
可以在右边看到相关的Java代码
image-20200602100102797我们创建一个SpringBoot项目导入相关的依赖。包括阿里云的依赖
image-20200602100329334<!--aliyun-java-sdk-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.1</version>
</dependency>
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.31</version>
</dependency>
<!--redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
将其左边的代码直接复制到SpringBoot的测试类中
image-20200602100612409DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<accessKeyId>", "<accessSecret>");
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.setSysMethod(MethodType.POST);
request.setSysDomain("dysmsapi.aliyuncs.com");
request.setSysVersion("2017-05-25");
request.setSysAction("SendSms");
request.putQueryParameter("RegionId", "cn-hangzhou");
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
进行相应的修改。和添加相关的参数,注释。发送短信验证码2233
image-20200602101028397点击运行。查看效果
image-20200602101157067手机成功接收到短信验证!!
image-20200602101254144集成Redis
前提我们已经导入了Redis依赖。接着配置Redis
image-20200602101441288spring.redis.host=localhost
spring.redis.port=6379
<mark>确保Redis服务已经开启</mark>
创建一个service包,编写SendSms接口
image-20200602101714456public interface SendSms {
boolean send(String phoneNum, String templateCode, Map<String,Object> code);
}
创建实现包,编写SendSmsImpl实现类。将测试类的代码进行封装
image-20200602101916915编写SmsApiController控制类
image-20200602102420940@RestController
@CrossOrigin//跨域
public class SmsApiController {
@Autowired
SendSms sendSms;
@Autowired
RedisTemplate<String, String> redisTemplate;
@GetMapping("/send/{phone}")
public String code(@PathVariable("phone") String phone) {
//调用发送方法,模拟真实业务redis
String code = redisTemplate.opsForValue().get(phone);
//查询redis中是否存在该手机号码的验证码
if (!StringUtils.isEmpty(code)) {
return phone + ":" + code+"已经存在,还没过期";
}
//生产验证码并存储到redis中
code = UUID.randomUUID().toString().substring(0, 4);//截取前4位
HashMap<String,Object> param = new HashMap<>();
param.put("code",code);
boolean flag = sendSms.send(phone, "SMS_191816503", param);//调用业务
if (flag){
redisTemplate.opsForValue().set(phone,code,5, TimeUnit.MINUTES);//存入redis中5分钟过期
return phone + ":" + code+"发送成功!";
}
return phone + ":" + code+"发送失败!";
}
}
启动项目,进行测试。验证码5bed发送成功
image-20200602102738193 image-20200602102759212redis中也能查询到相关的键值对!
image-20200602103041132
网友评论