项目结构:

配置文件

application.properties配置类
spring.jackson.time-zone=GMT+8
# nacos注册中心
spring.cloud.nacos.discovery.server-addr= 127.0.0.1:8848
#mybatis日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
# redis
spring.redis.host=填你的ip地址
spring.redis.port=6379
spring.redis.database= 0
spring.redis.timeout=1800000
spring.redis.password=root123
spring.redis.lettuce.pool.max-active=20
spring.redis.lettuce.pool.max-wait=-1
#最大阻塞等待时间(负数表示没限制)
spring.redis.lettuce.pool.max-idle=5
spring.redis.lettuce.pool.min-idle=0
#最小空闲
application.yml配置文件
spring:
mail:
# 下面这个是QQ邮箱host , 企业邮箱 : smtp.exmail.qq.com
host: smtp.qq.com
# tencent mail port 这个是固定的
port: 465
# 你的QQ邮箱
username: XXXXXXX@qq.com
# 进入邮箱配置后得到的授权码
password: 填你自己的QQ授权码
test-connection: true
properties:
mail:
smtp:
ssl:
enable: true
CV过去注意看看配置类有没有空格。格式对不对。[dog.jpg]
编写SmsController类
@RestController
@RequestMapping("/edusms/sms")
@CrossOrigin
public class SmsController {
@Autowired
JavaMailSenderImpl mailSender;
@Autowired
private RedisTemplate<String,String> redisTemplate; //redis模板
@PostMapping("sendEmail/{DstEmail}")
public R sendEmail(@PathVariable String DstEmail) {
//从redis中获取验证码,如果获取到直接返回
String verCode = redisTemplate.opsForValue().get(DstEmail);
if (!StringUtils.isEmpty(verCode)){
return R.ok();
}
//如果获取不到,进行邮箱发送
//创建邮件消息
SimpleMailMessage message = new SimpleMailMessage();
//发送人邮箱
message.setFrom("XXXXXXX@qq.com");
//接收人邮箱
message.setTo(DstEmail);
message.setSubject("[因特学院]");
verCode = RandomUtil.getSixBitRandom();
message.setText("您好:\n"
+ "\n本次请求的邮件验证码为:" + verCode + ",本验证码 5 分钟内效,请及时输入。(请勿泄露此验证码)\n"
+ "\n如非本人操作,请忽略该邮件。\n(这是一封通过自动发送的邮件,请不要直接回复)");
mailSender.send(message);
//把发送成功的验证码存放到redis里面
//设置有效时间
redisTemplate.opsForValue().set(DstEmail,verCode,5, TimeUnit.MINUTES);
return R.ok();
}
}
这里基本上都是和老师的一致,生成随机数的方式也是用的RandomUtil类
不同的是,controller类的映射类路径和老师的不一致,用邮箱实现方法中设置了一个参数DstEmail,这个意思是接收方邮箱,在后面message.setTo()的时候要用
主启动类
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
@ComponentScan("com.czy")
public class SmsApplication {
public static void main(String[] args) {
SpringApplication.run(SmsApplication.class,args);
}
}
这个用QQ邮箱发送短信的功能板块就实现了,配置一下nginx.conf,然后用swagger测一下,没问题了在继续往下进行,编写service_ucenter板块,这个板块使用代码生成器生成,细节要注意
主启动类UcenterApplication
@ComponentScan({"com.czy"})
@SpringBootApplication
@MapperScan("com.czy.educenter.mapper")
public class UcenterApplication {
public static void main(String[] args) {
SpringApplication.run(UcenterApplication.class,args);
}
}
然后UcenterMemberController类
@RestController
@RequestMapping("/educenter/member")
@CrossOrigin
public class UcenterMemberController {
@Autowired
private UcenterMemberService memberService;
//登录
@PostMapping("login")
public R loginUser(@RequestBody UcenterMember member){
//member封装手机号和密码
//调用service方法实现登录
//返回token值,使用jwt生成
String token = memberService.login(member);
return R.ok().data("token",token);
}
//注册
@PostMapping("register")
public R registerUser(@RequestBody RegisterVo registerVo){
memberService.register(registerVo);
return R.ok();
}
//根据token获取用户信息
@GetMapping("getMemberInfo")
public R getMemberInfo(HttpServletRequest request){
//调用jwt工具类的方法,根据reques

最低0.47元/天 解锁文章

3056

被折叠的 条评论
为什么被折叠?



