4.7 优化登录模块

137 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第25天,点击查看活动详情

4.7 优化登录模块

image-20220723072550670

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;
}

image-20220723081232046

LoginController:

image-20220723081344089

image-20220723082007652

image-20220723082522443

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;
}

image-20220723090145700

LoginTicketMapper:

然后我们要使用reid存储凭证,所以我们可以把之前的LoginTicketMapper废弃掉,在类上加上 @Deprecated 表示不推荐使用

image-20220723090243921

UserService:

UserService里重构一下用到LoginTicketMapper的地方

image-20220723090757396

image-20220723090958492

image-20220723091224951

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

image-20220723093512824

然后我们还需要在UserService里修改一些方法

image-20220723093622708

image-20220723093716305

image-20220723093817454