rax-medical/src/api/login.ts
2024-04-10 19:07:22 +08:00

63 lines
1.7 KiB
TypeScript

import * as other from "@/utils/other";
import {ElMessage} from "element-plus";
import request, {CommonHeaderEnum, postData} from "@/utils/request";
const registerUrl = "/admin/register/user"
const logoutUrl = "/admin/token/logout"
export const login = (data: any) => {
return new Promise(resolve => {
const basicAuth = 'Basic ' + window.btoa(import.meta.env.VITE_OAUTH2_PASSWORD_CLIENT);
let encPassword = data.password;
if (import.meta.env.VITE_PWD_ENC_KEY) {
encPassword = other.encryption(data.password, import.meta.env.VITE_PWD_ENC_KEY);
}
data.grant_type = 'password';
data.scope = 'server';
request({
url: '/admin/oauth2/token',
method: 'post',
data: {...data, password: encPassword},
headers: {
skipToken: true,
Authorization: basicAuth,
'Content-Type': CommonHeaderEnum.FORM_CONTENT_TYPE,
},
}).then((res: any) => {
resolve(res.data ? res.data : res.response.data)
}).catch(err => {
resolve(err)
handleError(err)
})
})
};
export const register = (data: any) => {
return new Promise(resolve => {
postData(registerUrl, data).then(res => {
resolve(res.data)
}).catch(err => {
resolve(err)
handleError(err)
})
})
}
export function logout() {
return request({
url: logoutUrl,
method: "DELETE"
})
}
function handleError(err: any) {
if (err && err.msg) {
ElMessage.error(err.msg)
} else {
ElMessage.error('系统异常请联系管理员')
}
}