携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第25天,点击查看活动详情
4.7 优化登录模块
1.重构: 使用Redis存储验证码
RedisKeyUtil:
首先要在redis里存验证码,所以我们现在 RedisKeyUtil 里面加方法定义key
private static final String PREFIX_KAPTCHA = "kaptcha"; // 验证码
// 存到redis里的验证码的key 参数表示用户临时的凭证(不是登录凭证),很快过期,为了在验证码时表示这个用户
public static String getKaptchaKey(String owner) {
return PREFIX_KAPTCHA + SPLIT + owner;
}
LoginController:
2. 重构:使用Redis存储登录凭证
RedisKeyUtil:
在redis里存登录凭证,所以我们现在 RedisKeyUtil 里面加方法定义key
private static final String PREFIX_TICKET = "ticket"; // 登录凭证
// 存的redis的登录凭证的key 把登录凭证传进来
public static String getTicketKey(String ticket) {
return PREFIX_TICKET + SPLIT + ticket;
}
LoginTicketMapper:
然后我们要使用reid存储凭证,所以我们可以把之前的LoginTicketMapper废弃掉,在类上加上 @Deprecated 表示不推荐使用
UserService:
在UserService里重构一下用到LoginTicketMapper的地方
3. 重构:使用Redis缓存用户信息
RedisKeyUtil:
在redis里存缓存信息,所以我们现在 RedisKeyUtil 里面加方法定义key
private static final String PREFIX_USER = "user";
// 用户
public static String getUserKey(int userId) {
return PREFIX_USER + SPLIT + userId;
}
UserService
然后我们还需要在UserService里修改一些方法