@PostMapping("login/precheck")
@ApiOperation("Login")
@CacheLock(autoDelete = false, prefix = "login_precheck")
public LoginPreCheckDTO authPreCheck(@RequestBody @Valid LoginParam loginParam) {
//1.根据loginParam,获取User对象 ---> 同"login"
final User user = adminService.authenticate(loginParam);
//2.LoginPreCheckDTO ---> User登录的环境 ---> 获得LoginPreCheckDTO(false)
return new LoginPreCheckDTO(MFAType.useMFA(user.getMfaType()));
//MFA ---> 多因子认证 ---> 用来防止密码泄漏, 可以在博客的系统中开启多因子认证选项
}
public enum MFAType implements ValueEnum<Integer> {
NONE(0), // 4. 0 即 NONE
TFA_TOTP(1);
private final Integer value;
MFAType(Integer value) {
this.value = value;
}
// 3.判断user的faType---->默认为"0"
public static boolean useMFA(MFAType mfaType) {
// 5.返回false
return mfaType != null && MFAType.NONE != mfaType;
}
@Override
public Integer getValue() {
return value;
}
}
07-05
932
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-19
1271
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)