68 lines
2.2 KiB
Vue
68 lines
2.2 KiB
Vue
<template>
|
||
<div>
|
||
<p>回调页面,加载授权信息中...</p>
|
||
</div>
|
||
</template>
|
||
<script lang="ts" setup name="callback">
|
||
//获取query参数
|
||
import { useRouter, useRoute } from 'vue-router';
|
||
import { onMounted } from 'vue';
|
||
import { usePermissStore } from "@/store/permiss";
|
||
import { getTokenByCode } from '@/api/user';
|
||
import { GetUserInfoService } from "@/api/user";
|
||
import { UserToken } from "@/types/user";
|
||
const route = useRoute();
|
||
const permiss = usePermissStore();
|
||
const router = useRouter();
|
||
|
||
onMounted(async () => {
|
||
// 获取query参数
|
||
const queryParams = route.query;
|
||
console.log('Received query parameters:', queryParams);
|
||
let code = queryParams.code;
|
||
if (code) {
|
||
let req = {
|
||
code: code,
|
||
};
|
||
await getTokenByCode(req).then((res: any) => {
|
||
if (res.code === 0) {
|
||
console.log('获取Token成功:', res);
|
||
let userTokenInfo: UserToken = res.data;
|
||
localStorage.setItem("token", userTokenInfo.access_token);
|
||
localStorage.setItem("refresh_token", userTokenInfo.refresh_token);
|
||
localStorage.setItem("userId", userTokenInfo.user_id.toString());
|
||
localStorage.setItem("username", userTokenInfo.username);
|
||
getMyUserInfo(userTokenInfo.user_id);
|
||
} else {
|
||
console.error('获取Token失败:', res.message);
|
||
}
|
||
}).catch((error: any) => {
|
||
console.error('请求错误:', error);
|
||
});
|
||
}
|
||
|
||
});
|
||
|
||
const getMyUserInfo = async (id) => {
|
||
let result = {};
|
||
try {
|
||
let tokenData = {
|
||
token: localStorage.getItem("token"),
|
||
id: id,
|
||
};
|
||
result = await GetUserInfoService(tokenData);
|
||
if (result["code"] === 0) {
|
||
localStorage.setItem("ms_username", result["data"]["Name"]);
|
||
const keys =
|
||
permiss.defaultList[result["data"]["Role"] == "admin" ? "admin" : "user"];
|
||
localStorage.setItem("ms_imgurl", result["data"]["Avatar"]);
|
||
permiss.handleSet(keys);
|
||
localStorage.setItem("ms_keys", JSON.stringify(keys));
|
||
localStorage.setItem("ms_role", result["data"]["Role"]);
|
||
router.push("/");
|
||
}
|
||
} catch (e) {
|
||
console.log(e);
|
||
}
|
||
};
|
||
</script> |