From 6bdc32ff0549aeb8bd89498879cb8e12f879d3ab Mon Sep 17 00:00:00 2001 From: Tim <135014430+nagisa77@users.noreply.github.com> Date: Sat, 5 Jul 2025 13:34:47 +0800 Subject: [PATCH] feat: add token validation api and auth module --- open-isle-cli/src/main.js | 7 +++++ open-isle-cli/src/utils/auth.js | 28 +++++++++++++++++++ open-isle-cli/src/views/LoginPageView.vue | 3 +- .../openisle/controller/AuthController.java | 5 ++++ 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 open-isle-cli/src/utils/auth.js diff --git a/open-isle-cli/src/main.js b/open-isle-cli/src/main.js index 0c560ff5d..0817f5a49 100644 --- a/open-isle-cli/src/main.js +++ b/open-isle-cli/src/main.js @@ -5,6 +5,7 @@ import './assets/global.css' import Toast, { POSITION } from 'vue-toastification' import 'vue-toastification/dist/index.css' import { useToast } from 'vue-toastification' +import { checkToken, clearToken } from './utils/auth' // Configurable API domain and port export const API_DOMAIN = 'http://127.0.0.1' @@ -16,3 +17,9 @@ const app = createApp(App) app.use(router) app.use(Toast, { position: POSITION.TOP_RIGHT }) app.mount('#app') + +checkToken().then(valid => { + if (!valid) { + clearToken() + } +}) diff --git a/open-isle-cli/src/utils/auth.js b/open-isle-cli/src/utils/auth.js new file mode 100644 index 000000000..519c06943 --- /dev/null +++ b/open-isle-cli/src/utils/auth.js @@ -0,0 +1,28 @@ +import { API_BASE_URL } from '../main' + +const TOKEN_KEY = 'token' + +export function getToken() { + return localStorage.getItem(TOKEN_KEY) +} + +export function setToken(token) { + localStorage.setItem(TOKEN_KEY, token) +} + +export function clearToken() { + localStorage.removeItem(TOKEN_KEY) +} + +export async function checkToken() { + const token = getToken() + if (!token) return false + try { + const res = await fetch(`${API_BASE_URL}/api/auth/check`, { + headers: { Authorization: `Bearer ${token}` } + }) + return res.ok + } catch (e) { + return false + } +} diff --git a/open-isle-cli/src/views/LoginPageView.vue b/open-isle-cli/src/views/LoginPageView.vue index a47421cca..2054144c5 100644 --- a/open-isle-cli/src/views/LoginPageView.vue +++ b/open-isle-cli/src/views/LoginPageView.vue @@ -56,6 +56,7 @@