From ee2610fa546bb6cb4100a799728e1376ca820813 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Thu, 27 Mar 2025 16:54:56 +0700 Subject: [PATCH] cookie sso --- src/plugins/auth.ts | 5 +++-- src/views/MainLayout.vue | 8 ++++++-- src/views/auth.vue | 2 +- src/views/login.vue | 2 +- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/plugins/auth.ts b/src/plugins/auth.ts index 6c7ee8872..1bc185278 100644 --- a/src/plugins/auth.ts +++ b/src/plugins/auth.ts @@ -10,8 +10,9 @@ interface AuthResponse { const authenticated = async () => ((await getToken()) ? true : false); -async function setAuthen(r: AuthResponse) { +async function setAuthen(r: AuthResponse, val: string) { await setCookie(ACCESS_TOKEN, r.access_token, r.expires_in); + setCookie("SSO", val, r.expires_in); window.location.href = "/"; } @@ -70,4 +71,4 @@ async function tokenParsed() { return JSON.parse(jsonPayload); } -export { getToken, authenticated, logout, setAuthen, tokenParsed }; +export { getToken, authenticated, logout, setAuthen, tokenParsed, getCookie }; diff --git a/src/views/MainLayout.vue b/src/views/MainLayout.vue index bf63eb9b5..2e379f946 100644 --- a/src/views/MainLayout.vue +++ b/src/views/MainLayout.vue @@ -6,7 +6,7 @@ import { storeToRefs } from "pinia"; import { scroll, useQuasar } from "quasar"; import { useCounterMixin } from "@/stores/mixin"; import { useMenuDataStore } from "@/stores/menuList"; -import { tokenParsed, logout } from "@/plugins/auth"; +import { tokenParsed, logout, getCookie } from "@/plugins/auth"; import avatar from "@/assets/avatar_user.jpg"; import http from "@/plugins/http"; @@ -232,6 +232,8 @@ const activeBtn = () => { return route.name == "registryDetail" && rightActive.value; }; +const isSsoToken = ref(false); + /** * เมื่อเริ่มต้นโปรแกรมให้ฟัง event resize และ function myEventHandler * set function myEventHandler เพราะ state ยังไม่เซ็ท , state เซ็ทเมื่อ หน้าจอเริ่ม ขยับหน้าจอ @@ -246,6 +248,8 @@ onMounted(async () => { fetchKeycloakPosition(); const user = await tokenParsed(); + const SSO_TOKEN = await getCookie("SSO"); + isSsoToken.value = SSO_TOKEN === "y" ? true : false; if (user) { fullname.value = user.name; role.value = user.role; @@ -775,7 +779,7 @@ function onViewDetailNoti(url: string) { เลือกโหมด --> - + { expires_in: route.query.expires ? route.query.expires : 36000, refresh_token: route.query.accessToken, }; - setAuthen(params); + setAuthen(params, "y"); } }); diff --git a/src/views/login.vue b/src/views/login.vue index e02050432..bc3561bec 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -34,7 +34,7 @@ async function onSubmit() { }, }) .then(async (res) => { - setAuthen(res.data.result); + setAuthen(res.data.result, "n"); }) .catch((err) => { $q.dialog({