package com.jojubanking.boot.module.system.service.authgz;

import com.jojubanking.boot.module.system.controller.admin.auth.vo.*;
import com.jojubanking.boot.module.system.controller.admin.auth.vo.*;
import com.jojubanking.boot.module.system.controller.app.auth.vo.AppAuthLoginRespVO;
import com.jojubanking.boot.module.system.controller.app.auth.vo.AppAuthSocialLoginReqVO;
import com.jojubanking.boot.module.system.dal.dataobject.user.AdminUserDO;

import javax.validation.Valid;

public interface GzAuthService {

    /**
     * 基于 token 退出登录
     *
     * @param token token
     * @param logType 登出类型
     */
//    void logout(String token, Integer logType);

    /**
     * 社交快捷登录，使用 code 授权码
     *
     * @param reqVO 登录信息
     * @return 登录结果
     */
    AppAuthLoginRespVO socialLogin(@Valid AppAuthSocialLoginReqVO reqVO);

    /**
     * 刷新访问令牌
     *
     * @param refreshToken 刷新令牌
     * @return 登录结果
     */
    AppAuthLoginRespVO refreshToken(String refreshToken);
}
