什么软件可以做动漫视频网站,WordPress动漫源码,莱芜民生网站,湛江企业建站模板一、设置AccessKey 创建用户并配置使用权限#xff0c;使我们拥有调用 aliyunAPI 的权限#xff0c;之后会生成 AccessKeyID 和 AccessKey密码#xff0c;后面我们会使用到。需要注意的是 AccessKeyID 和 AccessKey密码生成后我们需要将他保存起来#xff0c;否则后期无法查…一、设置AccessKey 创建用户并配置使用权限使我们拥有调用 aliyunAPI 的权限之后会生成 AccessKeyID 和 AccessKey密码后面我们会使用到。需要注意的是 AccessKeyID 和 AccessKey密码生成后我们需要将他保存起来否则后期无法查询到。 二、开启阿里云短信服务 在阿里云官网搜索短信服务进入短信服务控制台。
1、资质管理 在这里我们申请个人资质即可就不用上传企业的证明材料。注意个人的证件照片要清除不能有遮挡备注信息写上申请说明不能随便写审核一般在两个小时内。
2、签名管理 申请签名。
3、模板管理 这里的模板就是我们发送短信的模板需要注意的是要注意选择纯数字或者则是英文数字混合使用的模板。模板CODE后面我们需要使用。 三、SpringBoot整合阿里云SMS
1、整体流程 1、前端发送短信验证码的请求 2、后端收到请求后生成验证码的code调用阿里云API 接口发送短信 3、判断 SMS API 的返回信息“OK”则为成功发布 4、发布成功将code存入redis供后期校验使用 5、将存入redis时的key值返回给前端。
2、引入依赖 dependencygroupIdcom.aliyun/groupIdartifactIdaliyun-java-sdk-core/artifactIdversion4.6.0/version/dependencydependencygroupIdcom.aliyun/groupIdartifactIddysmsapi20170525/artifactIdversion3.0.0/version/dependencydependencygroupIdcom.aliyun/groupIdartifactIdaliyun-java-sdk-dysmsapi/artifactIdversion1.1.0/version/dependency
3、配置SMS Client
Configuration
public class AliyunCheckCodeConfig {Beanpublic Client aliyunClient() throws Exception {Config config new Config().setAccessKeyId(你的AccessKeyID).setAccessKeySecret(你的AccessKey密码);config.endpoint dysmsapi.aliyuncs.com;return new Client(config);}
} 在配置类中将阿里云SMS 的客户端注册进ioc 容器交给SpringBoot管理这里需要将自己生成的AccessKeyID 和 AccessKey 密码替换上
4、业务代码 Autowiredprivate Client aliyunClient; /*** 发送短信验证码** param phone* return*/Overridepublic String sendPhoneCheckCode(String phone) {//避免重复提交String jsonString redisTemplate.opsForValue().get(phone: phone);if(jsonString ! null){return null;}//生成验证码Integer numCode new Random().nextInt(1000,9999);String code String.valueOf(numCode);SendSmsRequest sendSmsRequest new SendSmsRequest();sendSmsRequest.setSignName(发送短信的主题).setTemplateCode(你的模板CODE).setPhoneNumbers(发送到的手机号).setTemplateParam({\code\: code });try {RuntimeOptions runtimeOptions new RuntimeOptions();SendSmsResponse sendSmsResponse aliyunClient.sendSmsWithOptions(sendSmsRequest, runtimeOptions);SendSmsResponseBody body sendSmsResponse.getBody();if (body.getMessage().equals(OK)) {//存入redisString key phone: phone;//存入redisredisTemplate.opsForValue().set(key,code,3,TimeUnit.MINUTES);//返回keyreturn key;} else {return null;}} catch (Exception e) {throw new RuntimeException(e);}} 这里我们需要将之前申请的模板CODE替换上code即为替换模板中占位符的信息我们引入了redis缓存将生成的验证码存入缓存中供后面的校验提供支持。