From 17230bee6b6947138a5360f06eda7058031183c4 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Thu, 27 Mar 2025 16:54:27 +0700 Subject: [PATCH] cookie sso --- src/plugins/auth.ts | 5 +++-- src/views/MainLayout.vue | 12 ++++++++++-- src/views/auth.vue | 2 +- src/views/login.vue | 2 +- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/plugins/auth.ts b/src/plugins/auth.ts index eb54de8..0c116a5 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 0c0b6c4..56ae845 100644 --- a/src/views/MainLayout.vue +++ b/src/views/MainLayout.vue @@ -7,7 +7,7 @@ import { useQuasar } from "quasar"; import { useCounterMixin } from "@/stores/mixin"; import CustomComponent from "@/components/CustomDialog.vue"; import avatar from "@/assets/avatar_user.jpg"; -import { tokenParsed, logout } from "@/plugins/auth"; +import { tokenParsed, logout, getCookie } from "@/plugins/auth"; import { useDataStore } from "@/stores/data"; @@ -39,6 +39,7 @@ const notiTrigger = ref(false); const currentRouteName = router.currentRoute.value.name; const tab = ref(currentRouteName); const link = ref(""); +const isSsoToken = ref(false); /** * เรียกฟังก์ชันทั้งหมดตอนเรียกใช้ไฟล์นี้ @@ -47,6 +48,8 @@ onMounted(async () => { await checkUser(); await fetchTotolNotificate(); const user = await tokenParsed(); + const SSO_TOKEN = await getCookie("SSO"); + isSsoToken.value = SSO_TOKEN === "y" ? true : false; fullname.value = user?.name; }); @@ -496,7 +499,12 @@ 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 81ea783..30bc98d 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -29,7 +29,7 @@ async function onSubmit() { }, }) .then(async (res) => { - setAuthen(res.data.result); + setAuthen(res.data.result,'n'); }) .catch((err) => { $q.dialog({