From fc4f0572658aa3fbb3f8f12199a65cc269a7f3ce Mon Sep 17 00:00:00 2001 From: Tobias Klika Date: Mon, 17 Jan 2022 22:14:40 +0100 Subject: [PATCH] check if user is still logged in (zero) --- zero.Backoffice.UI/app/app.vue | 1 + zero.Backoffice.UI/app/axios.config.ts | 4 +++- zero.Backoffice.UI/app/components/ui-table.vue | 2 +- zero.Backoffice.UI/app/startup.ts | 12 +++++++++++- zero.Core/zero.Core.csproj | 2 +- zero.Demo/Pages/Error.cshtml.cs | 2 +- 6 files changed, 18 insertions(+), 5 deletions(-) diff --git a/zero.Backoffice.UI/app/app.vue b/zero.Backoffice.UI/app/app.vue index 8d592660..eb282450 100644 --- a/zero.Backoffice.UI/app/app.vue +++ b/zero.Backoffice.UI/app/app.vue @@ -41,6 +41,7 @@ this.startup(); this.zero.events.on('zero.authenticate', this.onAuthentication); + this.zero.events.on('zero.rejectauth', () => this.authenticated = false); }, diff --git a/zero.Backoffice.UI/app/axios.config.ts b/zero.Backoffice.UI/app/axios.config.ts index 36bb5eaf..eb7a24a3 100644 --- a/zero.Backoffice.UI/app/axios.config.ts +++ b/zero.Backoffice.UI/app/axios.config.ts @@ -1,4 +1,5 @@ import Axios from 'axios'; +import eventHub from './services/eventhub'; //import Auth from 'zero/helpers/auth.js'; import Qs from 'qs'; @@ -27,7 +28,8 @@ Axios.interceptors.response.use( if (error.response && error.response.status === 401) { console.error('[zero.axios] Auth failed. Please login again.'); - return Promise.resolve(error.response); + eventHub.emit('zero.rejectauth'); + return Promise.reject(error.response); //Auth.rejectUser("@login.rejectReasons.inactive"); //Notification.error('Authentication failed. Please login again.', 3); } diff --git a/zero.Backoffice.UI/app/components/ui-table.vue b/zero.Backoffice.UI/app/components/ui-table.vue index 910361ed..2352998b 100644 --- a/zero.Backoffice.UI/app/components/ui-table.vue +++ b/zero.Backoffice.UI/app/components/ui-table.vue @@ -209,7 +209,7 @@ this.items = fetchResult.data; this.selected = []; - if (!initial) //&& this.configuration.scrollToTop) + if (!initial && !this.listConfig.preventScroll) //&& this.configuration.scrollToTop) { let container = document.querySelector(this.listConfig.scrollContainerSelector || '.app-main'); diff --git a/zero.Backoffice.UI/app/startup.ts b/zero.Backoffice.UI/app/startup.ts index 975fe1e8..38790010 100644 --- a/zero.Backoffice.UI/app/startup.ts +++ b/zero.Backoffice.UI/app/startup.ts @@ -11,7 +11,17 @@ export default async function startup(zero: Zero) { const accountStore = useAccountStore(); - let userResponse = await accountApi.getUser(); + let userResponse = null; + + try + { + userResponse = await accountApi.getUser(); + } + catch + { + userResponse = { success: false }; + } + const authenticated = userResponse.success; accountStore.user = authenticated ? userResponse.data : undefined; diff --git a/zero.Core/zero.Core.csproj b/zero.Core/zero.Core.csproj index b3f763f2..a6faa5d1 100644 --- a/zero.Core/zero.Core.csproj +++ b/zero.Core/zero.Core.csproj @@ -25,7 +25,7 @@ - + diff --git a/zero.Demo/Pages/Error.cshtml.cs b/zero.Demo/Pages/Error.cshtml.cs index ed175b26..67e5375c 100644 --- a/zero.Demo/Pages/Error.cshtml.cs +++ b/zero.Demo/Pages/Error.cshtml.cs @@ -8,7 +8,7 @@ namespace zero.Demo.Pages [IgnoreAntiforgeryToken] public class ErrorModel : PageModel { - public string? RequestId { get; set; } + public string RequestId { get; set; } public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);