@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;
}
}
Halo开源项目(1.2)---登录模块的precheck认证
最新推荐文章于 2024-07-22 14:15:06 发布