AuthRequest.java 2.0 KB
Newer Older
智布道's avatar
智布道 已提交
1 2 3
package me.zhyd.oauth.request;

import me.zhyd.oauth.exception.AuthException;
4
import me.zhyd.oauth.model.AuthCallback;
智布道's avatar
智布道 已提交
5
import me.zhyd.oauth.model.AuthResponse;
6
import me.zhyd.oauth.enums.AuthResponseStatus;
7
import me.zhyd.oauth.model.AuthToken;
智布道's avatar
智布道 已提交
8 9 10 11 12 13 14 15

/**
 * @author yadong.zhang (yadong.zhang0415(a)gmail.com)
 * @since 1.8
 */
public interface AuthRequest {

    /**
16
     * 返回授权url,可自行跳转页面
17 18 19
     * <p>
     * 不建议使用该方式获取授权地址,不带{@code state}的授权地址,容易受到csrf攻击。
     * 建议使用{@link AuthDefaultRequest#authorize(String)}方法生成授权地址,在回调方法中对{@code state}进行校验
20 21
     *
     * @return 返回授权地址
智布道's avatar
智布道 已提交
22
     */
23
    @Deprecated
24
    default String authorize() {
智布道's avatar
智布道 已提交
25
        throw new AuthException(AuthResponseStatus.NOT_IMPLEMENTED);
智布道's avatar
智布道 已提交
26 27
    }

28
    /**
29
     * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state}
30 31 32 33 34 35 36 37
     *
     * @param state state 验证授权流程的参数,可以防止csrf
     * @return 返回授权地址
     */
    default String authorize(String state) {
        throw new AuthException(AuthResponseStatus.NOT_IMPLEMENTED);
    }

智布道's avatar
智布道 已提交
38 39 40
    /**
     * 第三方登录
     *
41
     * @param authCallback 用于接收回调参数的实体
智布道's avatar
智布道 已提交
42
     * @return 返回登录成功后的用户信息
智布道's avatar
智布道 已提交
43
     */
44
    default AuthResponse login(AuthCallback authCallback) {
智布道's avatar
智布道 已提交
45
        throw new AuthException(AuthResponseStatus.NOT_IMPLEMENTED);
智布道's avatar
智布道 已提交
46
    }
47 48 49 50

    /**
     * 撤销授权
     *
51
     * @param authToken 登录成功后返回的Token信息
52
     * @return AuthResponse
53
     */
54
    default AuthResponse revoke(AuthToken authToken) {
智布道's avatar
智布道 已提交
55
        throw new AuthException(AuthResponseStatus.NOT_IMPLEMENTED);
56
    }
57 58 59 60

    /**
     * 刷新access token (续期)
     *
61
     * @param authToken 登录成功后返回的Token信息
62
     * @return AuthResponse
63
     */
64
    default AuthResponse refresh(AuthToken authToken) {
智布道's avatar
智布道 已提交
65
        throw new AuthException(AuthResponseStatus.NOT_IMPLEMENTED);
66
    }
智布道's avatar
智布道 已提交
67
}