ruoyi-plus-vben5/apps/web-antd/src/api/core/auth.ts

73 lines
1.4 KiB
TypeScript
Raw Normal View History

2024-08-07 08:57:56 +08:00
import { useAppConfig } from '@vben/hooks';
import { requestClient } from '#/api/request';
2024-08-07 08:57:56 +08:00
const { clientId } = useAppConfig(import.meta.env, import.meta.env.PROD);
export namespace AuthApi {
/** 登录接口参数 */
export interface LoginParams {
2024-08-07 08:57:56 +08:00
code?: string;
grantType: string;
password: string;
2024-08-07 08:57:56 +08:00
tenantId: string;
username: string;
2024-08-07 08:57:56 +08:00
uuid?: string;
}
/** 登录接口返回值 */
export interface LoginResult {
2024-08-07 08:57:56 +08:00
access_token: string;
client_id: string;
expire_in: number;
}
}
/**
*
*/
export async function login(data: AuthApi.LoginParams) {
2024-08-07 08:57:56 +08:00
return requestClient.post<AuthApi.LoginResult>(
'/auth/login',
{ ...data, clientId },
{
encrypt: true,
},
);
}
/**
*
* @returns void
*/
export function doLogout() {
return requestClient.post<void>('/auth/logout');
}
/**
* @param companyName /
* @param domain (http(s)://) 可选
* @param tenantId id
*/
export interface TenantOption {
companyName: string;
domain?: string;
tenantId: string;
}
/**
* @param tenantEnabled
* @param voList
*/
export interface TenantResp {
tenantEnabled: boolean;
voList: TenantOption[];
}
/**
2024-08-07 08:57:56 +08:00
* 使
*/
2024-08-07 08:57:56 +08:00
export function tenantList() {
return requestClient.get<TenantResp>('/auth/tenant/list');
}