From 19a60530984a992abd8c96f6268732c72f584a7b Mon Sep 17 00:00:00 2001 From: Alireza Ahmadi Date: Tue, 27 Feb 2024 01:03:00 +0100 Subject: [PATCH] auto logout --- backend/api/utils.go | 2 +- frontend/src/layouts/default/Drawer.vue | 11 ++++------- frontend/src/locales/en.ts | 3 +++ frontend/src/locales/fa.ts | 3 +++ frontend/src/plugins/httputil.ts | 13 +++++++++++++ frontend/src/views/Login.vue | 4 ++-- 6 files changed, 26 insertions(+), 10 deletions(-) diff --git a/backend/api/utils.go b/backend/api/utils.go index 93b062f..07aa2a7 100644 --- a/backend/api/utils.go +++ b/backend/api/utils.go @@ -69,7 +69,7 @@ func pureJsonMsg(c *gin.Context, success bool, msg string) { func checkLogin(c *gin.Context) { if !IsLogin(c) { if c.GetHeader("X-Requested-With") == "XMLHttpRequest" { - pureJsonMsg(c, false, "Not authorized") + pureJsonMsg(c, false, "Invalid login") } else { c.Redirect(http.StatusTemporaryRedirect, "/login") } diff --git a/frontend/src/layouts/default/Drawer.vue b/frontend/src/layouts/default/Drawer.vue index 6c0c07d..de3b003 100644 --- a/frontend/src/layouts/default/Drawer.vue +++ b/frontend/src/layouts/default/Drawer.vue @@ -32,7 +32,7 @@ @@ -40,7 +40,7 @@ \ No newline at end of file diff --git a/frontend/src/locales/en.ts b/frontend/src/locales/en.ts index 9231783..a0970fa 100644 --- a/frontend/src/locales/en.ts +++ b/frontend/src/locales/en.ts @@ -17,6 +17,7 @@ export default { network: "Network", copyToClipboard: "Copy to clipboard", noData: "No data!", + invalidLogin: "Invalid Login!", online: "Online", pages: { login: "Login", @@ -69,10 +70,12 @@ export default { del: "Delete", save: "Save", update: "Update", + submit: "Submit", close: "Close", restartApp: "Restart App", }, login: { + title: "Login", username: "Username", unRules: "Username can not be empty", password: "Password", diff --git a/frontend/src/locales/fa.ts b/frontend/src/locales/fa.ts index 4e5012c..dcd0fa8 100644 --- a/frontend/src/locales/fa.ts +++ b/frontend/src/locales/fa.ts @@ -17,6 +17,7 @@ export default { network: "شبکه", copyToClipboard: "کپی در حافظه", noData: "بدون داده!", + invalidLogin: "ورود نامعتبر!", online: "آنلاین", pages: { login: "ورود", @@ -69,10 +70,12 @@ export default { del: "حذف", save: "ذخیره", update: "بروزرسانی", + submit: "ارسال", close: "بستن", restartApp: "ریستارت پنل", }, login: { + title: "ورود", username: "نام کاربری", unRules: "نام کاربری نمی‌تواند خالی باشد", password: "کلمه عبور", diff --git a/frontend/src/plugins/httputil.ts b/frontend/src/plugins/httputil.ts index b9da386..0b43aac 100644 --- a/frontend/src/plugins/httputil.ts +++ b/frontend/src/plugins/httputil.ts @@ -1,5 +1,6 @@ import api from './api' import { i18n } from '@/locales' +import router from '@/router' import Message from "@/store/modules/message" export interface Msg { @@ -14,11 +15,23 @@ function _handleMsg(msg: any): void { return } if(msg.msg){ + if (!msg.success && msg.msg == "Invalid login") { + sb.showMessage(i18n.global.t('invalidLogin'),'error', 5000) + logout() + return + } const message = msg.success ? i18n.global.t('success') + ": " + i18n.global.t('actions.' + msg.msg) : i18n.global.t('failed') + ": " + msg.msg sb.showMessage(message, msg.success ? 'success' : 'error', 5000) } } +export const logout = async () => { + const response = await HttpUtils.get('api/logout') + if(response.success){ + router.push('/login') + } +} + function _respToMsg(resp: any): Msg { const data = resp.data if (data == null) { diff --git a/frontend/src/views/Login.vue b/frontend/src/views/Login.vue index 9d497b8..87e0c39 100644 --- a/frontend/src/views/Login.vue +++ b/frontend/src/views/Login.vue @@ -3,12 +3,12 @@ - Login + - Login +