WangHan
2024-09-12 d5855a4926926698b740bc6c7ba489de47adb68b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package tech.powerjob.server.auth.login;
 
import javax.servlet.http.HttpServletRequest;
 
/**
 * 第三方登录服务
 *
 * @author tjq
 * @since 2024/2/10
 */
public interface ThirdPartyLoginService {
 
    /**
     * 登陆服务的类型
     * @return 登陆服务类型,比如 PowerJob / DingTalk
     */
    LoginTypeInfo loginType();
 
    /**
     * 生成登陆的重定向 URL
     * @param httpServletRequest http请求
     * @return 重定向地址
     */
    String generateLoginUrl(HttpServletRequest httpServletRequest);
 
    /**
     * 执行第三方登录
     * @param loginRequest 上下文
     * @return 登录地址
     */
    ThirdPartyUser login(ThirdPartyLoginRequest loginRequest);
 
    /**
     * JWT 登录的回调校验
     * @param username 用户名称
     * @param tokenLoginVerifyInfo 二次校验信息
     * @return 是否通过
     */
    default boolean tokenLoginVerify(String username, TokenLoginVerifyInfo tokenLoginVerifyInfo) {
        return true;
    }
}