AuthSource.java 1.9 KB
Newer Older
1
package me.zhyd.oauth.config;
智布道's avatar
智布道 已提交
2

3
import me.zhyd.oauth.enums.AuthResponseStatus;
4
import me.zhyd.oauth.exception.AuthException;
5
import me.zhyd.oauth.model.AuthCallback;
智布道's avatar
智布道 已提交
6 7

/**
8 9 10 11 12 13 14 15 16 17 18
 * OAuth平台的API管理类的统一接口,提供以下接口:
 * 1) {@link AuthSource#authorize()}: 获取授权api. 必须实现
 * 2) {@link AuthSource#accessToken()}: 获取授权api. 必须实现
 * 3) {@link AuthSource#userInfo()}: 获取授权api. 必须实现
 * 4) {@link AuthSource#revoke()}: 获取授权api. 非必须实现接口(部分平台不支持)
 * 5) {@link AuthSource#refresh()} ()}: 获取授权api. 非必须实现接口(部分平台不支持)
 * <p>
 * 注:
 * ①、如需通过JustAuth扩展实现第三方授权,请参考{@link AuthDefaultSource}自行创建对应的枚举类并实现{@link AuthSource}接口
 * ②、如果不是使用的枚举类,那么在授权成功后获取用户信息时,需要单独处理{@link me.zhyd.oauth.model.AuthUser#setSource}字段的赋值
 * ③、如果扩展了对应枚举类时,在{@link me.zhyd.oauth.request.AuthRequest#login(AuthCallback)}中可以通过{@code xx.toString()}获取对应的source
智布道's avatar
智布道 已提交
19 20
 *
 * @author yadong.zhang (yadong.zhang0415(a)gmail.com)
21 22 23
 * @version 1.0
 * @date 2019/9/6 21:17
 * @since 1.8
智布道's avatar
智布道 已提交
24
 */
25
public interface AuthSource {
智布道's avatar
智布道 已提交
26

智布道's avatar
智布道 已提交
27 28
    /**
     * 授权的api
智布道's avatar
智布道 已提交
29 30
     *
     * @return url
智布道's avatar
智布道 已提交
31
     */
32
    String authorize();
智布道's avatar
智布道 已提交
33

智布道's avatar
智布道 已提交
34 35
    /**
     * 获取accessToken的api
智布道's avatar
智布道 已提交
36 37
     *
     * @return url
智布道's avatar
智布道 已提交
38
     */
39
    String accessToken();
智布道's avatar
智布道 已提交
40

智布道's avatar
智布道 已提交
41 42
    /**
     * 获取用户信息的api
智布道's avatar
智布道 已提交
43 44
     *
     * @return url
智布道's avatar
智布道 已提交
45
     */
46
    String userInfo();
智布道's avatar
智布道 已提交
47

智布道's avatar
智布道 已提交
48 49
    /**
     * 取消授权的api
智布道's avatar
智布道 已提交
50 51
     *
     * @return url
智布道's avatar
智布道 已提交
52
     */
53
    default String revoke() {
智布道's avatar
智布道 已提交
54
        throw new AuthException(AuthResponseStatus.UNSUPPORTED);
55
    }
智布道's avatar
智布道 已提交
56

智布道's avatar
智布道 已提交
57 58
    /**
     * 刷新授权的api
智布道's avatar
智布道 已提交
59 60
     *
     * @return url
智布道's avatar
智布道 已提交
61
     */
62
    default String refresh() {
智布道's avatar
智布道 已提交
63
        throw new AuthException(AuthResponseStatus.UNSUPPORTED);
64
    }
H
Hongwei Peng 已提交
65
}