54 lines
1.3 KiB
TypeScript
54 lines
1.3 KiB
TypeScript
import { userAtom } from '@/atoms/user';
|
|
import { clearAtomStorage, clearStorageUserSettings } from '@/atoms/utils';
|
|
import { request } from '@umijs/max';
|
|
import qs from 'query-string';
|
|
|
|
export const AUTH_API = '/auth';
|
|
|
|
export const AUTH_CONFIG_API = '/auth-config';
|
|
|
|
export const AUTH_OIDC_LOGIN_API = '/auth/oidc/login';
|
|
export const AUTH_SAML_LOGIN_API = '/auth/saml/login';
|
|
|
|
export const login = async (
|
|
params: { username: string; password: string },
|
|
options?: any
|
|
) => {
|
|
return request(`${AUTH_API}/login`, {
|
|
method: 'POST',
|
|
data: qs.stringify(params),
|
|
headers: {
|
|
'Content-Type': 'application/x-www-form-urlencoded'
|
|
}
|
|
});
|
|
};
|
|
|
|
export const logout = async (userInfo?: any) => {
|
|
const res = await request(`${AUTH_API}/logout`, {
|
|
method: 'POST'
|
|
});
|
|
clearStorageUserSettings();
|
|
clearAtomStorage(userAtom);
|
|
if (res?.logout_url) {
|
|
window.location.href = res.logout_url;
|
|
}
|
|
return;
|
|
};
|
|
|
|
export const accessToken = async () => {
|
|
return request(`${AUTH_API}/token`, {
|
|
method: 'POST'
|
|
});
|
|
};
|
|
|
|
export const updatePassword = async (params: any) => {
|
|
return request(`${AUTH_API}/update-password`, {
|
|
method: 'POST',
|
|
data: params
|
|
});
|
|
};
|
|
|
|
export const fetchAuthConfig = async () => {
|
|
return request(AUTH_CONFIG_API);
|
|
};
|