阿里云创建用户组和用户
首先进入
阿里云官网
。点击右上角的登录进行登录(没有账号的进行注册登录)
搜索框搜索
访问控制
进入访问控制页面
点击进入
管理控制台
进入到
RAM访问控制
页面
点击左侧菜单栏的
用户组
点击
创建用户组
创建新的用户组
按要求填写相关信息
点击
添加权限
添加短信业务权限
搜索框中搜索
短信
添加备注为
管理短信服务(SMS)的权限
我们可以点击用户组名称进行查看
点击
权限管理
查看当前用户组所拥有的权限
接着点击左侧菜单栏
用户
进入页面点击
创建用户
创建新用户
按照提示填写相关信息。<mark>
访问方式选择编程访问
</mark>
<mark>
若开通编程访问,请及时保存 AccessKey 信息,页面关闭后将无法再次获取信息。此时页面会显示AccessKey Secret注意保存。
</mark>
访问到用户页面。点击
添加用户组
选择加入到之前创建的用户组
点击查看当前用户
点击
加入的组
查看当前加入的用户组。可以看到我们已经成功加入之前创建的用户组了
接着点击
权限管理
可以看到个人权限为空,点击
继承用户组的权限
可以看到我们成功继承了加入的用户组的权限
到此为止我们的阿里用户组和用户已经成功创建!
阿里云开通短信服务
搜索框中搜索
短信服务
.由于我开通了,所以直接进入短信服务的控制台。没有开通则选择开通服务。(注意此操作需要付费,所以保证账户里有余额)
点击左侧
国内信息
选择
模板管理
点击添加模板
按照提示填写相关的信息。模板可以选择在
常用的模板库
进行选择
填写完成之后。等待审核通过。
接着点击
签名管理
选择
添加签名
<mark>
适用场景选择验证码
</mark>按要求填写信息
等待审核通过
快速学习
点击左边菜单的
快速学习
我们不填写直接点击
查看API Demo
可以在右边看到相关的Java代码
我们创建一个SpringBoot项目导入相关的依赖。包括阿里云的依赖
<!--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的测试类中
DefaultProfile 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
点击运行。查看效果
手机成功接收到短信验证!!
集成Redis
前提我们已经导入了Redis依赖。接着配置Redis
spring.redis.host=localhost
spring.redis.port=6379
<mark>
确保Redis服务已经开启
</mark>
创建一个service包,编写SendSms接口
public interface SendSms {
boolean send(String phoneNum, String templateCode, Map<String,Object> code);
}
创建实现包,编写SendSmsImpl实现类。将测试类的代码进行封装
编写SmsApiController控制类
@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发送成功
redis中也能查询到相关的键值对!