sawAdmin/src/views/system/callback.vue

68 lines
2.2 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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>