|
import { computed } from 'vue' |
|
import { request_handler, type ResultPackage } from '@/api/base' |
|
import { type TokenItem, useTokenStore } from '@/stores/userToken' |
|
|
|
|
|
type loginFormType = { |
|
username: string |
|
password: string |
|
vertify_code?: string |
|
} |
|
|
|
interface UserInfo { |
|
user_id: number |
|
username: string |
|
avatar: string |
|
email: string |
|
create_time: string |
|
} |
|
|
|
|
|
const tokenStore = useTokenStore() |
|
|
|
|
|
const header_authorization = computed(() => { |
|
console.log('Update token') |
|
return `${tokenStore.token.token_type} ${tokenStore.token.access_token}` |
|
}) |
|
|
|
|
|
const loginRequest = (loginForm: loginFormType) => { |
|
const formData = new FormData() |
|
formData.append('username', loginForm.username) |
|
formData.append('password', loginForm.password) |
|
|
|
return request_handler<TokenItem>({ |
|
method: 'POST', |
|
url: '/user/login', |
|
data: formData, |
|
headers: { |
|
'Content-Type': 'application/x-www-form-urlencoded' |
|
} |
|
}) |
|
} |
|
|
|
|
|
const getUserInfoRequest = async () => { |
|
return request_handler<ResultPackage<UserInfo>>({ |
|
method: 'GET', |
|
url: '/user/me', |
|
headers: { |
|
Authorization: header_authorization.value |
|
} |
|
}) |
|
} |
|
|
|
export { loginRequest, header_authorization, getUserInfoRequest, type UserInfo } |
|
|