fixing cookie

This commit is contained in:
Warunee Tamkoo 2024-12-19 09:58:50 +07:00
parent 3f5b7356f1
commit 71d85cf2bb

View file

@ -13,10 +13,11 @@ import screen3 from "@/assets/screen3.png";
import screen4 from "@/assets/screen4.png";
import type { DateCards } from "@/interface/index/Main";
import http from "@/plugins/http";
const $q = useQuasar();
const cookieTokenName = ref<string>("BMAHRIS_KEYCLOAK_IDENTITY");
const cookieTokenRefName = ref<string>("BMAHRIS_KEYCLOAK_REFRESH");
const urlAdmin = config.API.URL_ADMIN;
const urlUser = config.API.URL_USER;
const urlMgt = config.API.URL_MGT;
@ -47,9 +48,10 @@ const cards = ref<DateCards[]>([
const token = ref<any>("");
const refreshToken = ref<any>("");
const fullname = computed(() => {
if (token.value) {
const base64Url = token.value.split(".")[1];
const fullname = computed(async () => {
const token = await getCookie(cookieTokenName.value);
if (token) {
const base64Url = token.split(".")[1];
// Base64 URL-safe Base64
const base64 = base64Url.replace(/-/g, "+").replace(/_/g, "/");
@ -64,48 +66,52 @@ const fullname = computed(() => {
});
async function goPage(sys: string, url: string) {
// Payload JWT ( 2)
const base64Url = token.value.split(".")[1];
const token = await getCookie(cookieTokenName.value);
// Base64 URL-safe Base64
const base64 = base64Url.replace(/-/g, "+").replace(/_/g, "/");
if (token) {
// Payload JWT ( 2)
const base64Url = token.split(".")[1];
// Base64
const decoded = atob(base64);
// Base64 URL-safe Base64
const base64 = base64Url.replace(/-/g, "+").replace(/_/g, "/");
// requiredRole sys
let requiredRole: string[] = [];
// Base64
const decoded = atob(base64);
if (sys === "user" || sys === "checkin") {
requiredRole = ["USER"];
} else if (sys === "mgt") {
requiredRole = ["STAFF"]; // sys "ADMIN"
} else if (sys === "admin") {
requiredRole = ["ADMIN", "SUPER_ADMIN"];
}
// requiredRole sys
let requiredRole: string[] = [];
// console.log("requiredRole===>", requiredRole);
// console.log("decoded===>", JSON.parse(decoded).realm_access.roles);
if (sys === "user" || sys === "checkin") {
requiredRole = ["USER"];
} else if (sys === "mgt") {
requiredRole = ["STAFF"]; // sys "ADMIN"
} else if (sys === "admin") {
requiredRole = ["ADMIN", "SUPER_ADMIN"];
}
// payload.role role
if (
requiredRole.some((role) =>
JSON.parse(decoded).realm_access.roles.includes(role)
)
) {
window.location.href = `${url}/auth?token=${token.value}&accessToken=${refreshToken.value}`;
} else {
// alert("");
$q.dialog({
component: CustomComponent,
componentProps: {
title: `แจ้งเตือน`,
message: "คุณไม่มีสิทธิ์เข้าใช้งานระบบนี้",
icon: "warning",
color: "red",
onlycancel: true,
},
});
// console.log("requiredRole===>", requiredRole);
// console.log("decoded===>", JSON.parse(decoded).realm_access.roles);
// payload.role role
if (
requiredRole.some((role) =>
JSON.parse(decoded).realm_access.roles.includes(role)
)
) {
window.location.href = `${url}/auth?token=${token}&accessToken=${refreshToken.value}`;
} else {
// alert("");
$q.dialog({
component: CustomComponent,
componentProps: {
title: `แจ้งเตือน`,
message: "คุณไม่มีสิทธิ์เข้าใช้งานระบบนี้",
icon: "warning",
color: "red",
onlycancel: true,
},
});
}
}
}
@ -121,8 +127,8 @@ async function logout() {
cancel: true,
persistent: true,
}).onOk(async () => {
await deleteCookie("BMAHRIS_KEYCLOAK_IDENTITY");
await deleteCookie("BMAHRIS_KEYCLOAK_REFRESH");
await deleteCookie(cookieTokenName.value);
await deleteCookie(cookieTokenRefName.value);
// logout
await postSaveLog("ออกจากระบบ", token.value);
window.location.href = `${config.API.URL_SSO}`;
@ -151,14 +157,11 @@ async function postSaveLog(type: string, token: any) {
}
onMounted(async () => {
token.value = await getCookie("BMAHRIS_KEYCLOAK_IDENTITY");
refreshToken.value = await getCookie("BMAHRIS_KEYCLOAK_REFRESH");
deleteCookie("BMAHRISADM_KEYCLOAK_IDENTITY");
deleteCookie("BMAHRISCKI_KEYCLOAK_IDENTITY");
deleteCookie("BMAHRISUSER_KEYCLOAK_IDENTITY");
const checkToken = (await token.value) ?? null;
const checkToken = await getCookie(cookieTokenName.value);
if (!checkToken && !token.value) {
await axios
@ -174,8 +177,12 @@ onMounted(async () => {
)
.then(async (res: any) => {
if (res.status === 200) {
setCookie("BMAHRIS_KEYCLOAK_IDENTITY", res.data.access_token, 1);
setCookie("BMAHRIS_KEYCLOAK_REFRESH", res.data.refresh_token, 1);
setCookie(cookieTokenName.value, res.data.access_token, 1);
setCookie(cookieTokenRefName.value, res.data.refresh_token, 1);
token.value = await res.data.access_token;
refreshToken.value = await res.data.refresh_token;
// log
await postSaveLog("เข้าสู่ระบบ", res.data.access_token);
}
@ -183,6 +190,9 @@ onMounted(async () => {
.catch((err: any) => {
router.push("/sso");
});
} else {
token.value = await getCookie(cookieTokenName.value);
refreshToken.value = await getCookie(cookieTokenRefName.value);
}
});
</script>