Login 管理
作者:唐亚峰 | battcn
字数统计:217 字
自定义登录类型
默认支持 密码
、验证码
、短信
、GITEE
等多种登录方式,除此之外提供了接口可以快速实现自定义登录
登录类型扩展
实现 AuthenticatorStrategy
接口即可自定义N种基于 loginType
方式的自定义登录
案例:短信登录
java
import com.wemirr.framework.commons.exception.CheckedException;
import com.wemirr.framework.security.configuration.server.support.AuthenticationPrincipal;
import com.wemirr.framework.security.configuration.server.support.AuthenticatorStrategy;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* 短信验证码认证.
*
* @author Levin
**/
@Slf4j
@Component
@RequiredArgsConstructor
public class SmsAuthenticator implements AuthenticatorStrategy {
@Override
public void prepare(final AuthenticationPrincipal principal) {
// username = 手机号
String username = principal.getUsername();
// password = 短信验证码
String password = principal.getPassword();
// 验证 短信验证码
boolean status = smsService.valid(username, password);
if (!status) {
throw CheckedException.badRequest("短信验证码异常");
}
}
@Override
public void authenticate(final AuthenticationPrincipal principal) {
// TODO 自定义一些逻辑
}
@Override
public String loginType() {
return "sms";
}
}
请求方式
json
POST => https://cloud.battcn.com/api/iam/token/login
{
"tenantCode": "0000",
"username": "13000000000",
"password": "短信验证码",
"loginType": "sms",
"clientId": "pc-web",
"clientSecret": "pc-web"
}