All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.qbit.service.AuthService Maven / Gradle / Ivy

package com.qbit.service;

import com.qbit.service.dto.AccessTokenOutput;
import com.qbit.service.dto.CodeOutput;
import com.qbit.service.dto.RefreshTokenOutput;
import com.qbit.service.impl.AuthServiceImpl;

/**
 * @author klover
 * description AuthService
 * date 2022/10/14 12:54
 */
public interface AuthService {
    /**
     * Service构造器
     */
    class Builder {
        private String clientId;
        private String clientSecret;
        private String baseurl;

        /**
         * 配置
         *
         * @param clientId     clientId
         * @param clientSecret clientSecret
         * @param baseurl      baseurl
         * @return
         */
        public AuthService.Builder config(String clientId, String clientSecret, String baseurl) {
            this.clientId = clientId;
            this.clientSecret = clientSecret;
            this.baseurl = baseurl;

            return this;
        }

        /**
         * 构造服务
         *
         * @return QbitService
         */
        public AuthService build() {
            return new AuthServiceImpl(clientId, clientSecret, baseurl);
        }
    }

    /**
     * 获取code
     *
     * @return
     */
    CodeOutput getCode() throws Exception;

    /**
     * 获取code
     *
     * @param state 重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节
     * @return
     */
    CodeOutput getCode(String state) throws Exception;

    /**
     * 获取code
     *
     * @param state       重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节
     * @param redirectUri 授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理
     * @return
     */
    CodeOutput getCode(String state, String redirectUri) throws Exception;

    /**
     * 获取access token
     *
     * @param code code
     * @return
     */
    AccessTokenOutput getAccessToken(String code);

    /**
     * 刷新access token
     *
     * @param refreshToken 填写通过access-token获取到的refreshToken参数
     * @return
     */
    RefreshTokenOutput refreshToken(String refreshToken);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy