import { request } from '@/plugins/http-fetch'; import { sessionGet } from '@/utils/cache-session-utils'; /** * 登录方法 * @param data 数据 * @returns 结果 */ export function login(data: Record) { return request({ url: '/auth/login', method: 'POST', data: data, whithToken: false, }); } /** * 退出方法 * @returns object */ export function logout() { return request({ url: '/auth/logout', method: 'POST', repeatSubmit: false, }); } /** * 注册方法 * @param data 注册对象 * @returns object */ export function register(data: Record) { return request({ url: '/auth/register', method: 'POST', data: data, whithToken: false, }); } /** * 刷新登录令牌 * @param data 数据 * @returns 结果 */ export function refreshToken(refreshToken: string) { return request({ url: '/auth/refresh-token', method: 'POST', data: { refreshToken }, whithToken: false, }); } /** * 获取用户详细信息 * @returns object */ export function getInfo() { return request({ url: '/me', method: 'GET', }); } /** * 获取路由 * @returns object */ export const getRouter = () => { return request({ url: '/router', method: 'GET', }); }; /** * 获取验证码 * @returns object */ export function getCaptchaImage() { return request({ url: '/captcha-image', method: 'GET', whithToken: false, }); } /** * 登录认证源 * @returns object */ export function getLoginSource() { return request({ url: '/auth/login/source', method: 'GET', whithToken: false, }); } /** * LDAP登录 * @returns object */ export function loginLDAP(data: Record) { return request({ url: '/auth/login/ldap', method: 'POST', data: data, whithToken: false, }); } /** * SMTP登录 * @returns object */ export function loginSMTP(data: Record) { return request({ url: '/auth/login/smtp', method: 'POST', data: data, whithToken: false, }); } /** * 登录认证源OAuth2跳转登录URL * @returns object */ export function loginOAuth2URL(state: string): string { // 兼容旧前端可改配置文件 const baseUrl = import.meta.env.PROD ? sessionGet('baseUrl') || import.meta.env.VITE_API_BASE_URL : import.meta.env.VITE_API_BASE_URL; return `${baseUrl}/auth/login/oauth2/authorize?state=${state}`; } /** * 登录认证源OAuth2认证登录 * @returns object */ export function loginOAuth2Token(code: string, state: string) { return request({ url: '/auth/login/oauth2/token', method: 'POST', data: { code, state, }, whithToken: false, }); }