Blazor: Redirect to Login page when there is no session / JWT token?

前端 未结 4 1044
失恋的感觉
失恋的感觉 2021-01-28 09:14

I am trying to create a new application in Blazor and am working on authentication. I am using a JWT tokens that is stored in Local storage. When the application loads i need to

4条回答
  •  -上瘾入骨i
    2021-01-28 09:41

    Create a component and name it RedirectToLogin.razor:

    @inject NavigationManager Navigation
    @code {
        [CascadingParameter]
        private Task AuthenticationStateTask { get; set; }
    
        protected override async Task OnInitializedAsync()
        {
            var authenticationState = await AuthenticationStateTask;
    
            if (authenticationState?.User?.Identity is null || !authenticationState.User.Identity.IsAuthenticated)
            {
                var returnUrl = Navigation.ToBaseRelativePath(Navigation.Uri);
    
                if (string.IsNullOrWhiteSpace(returnUrl))
                    Navigation.NavigateTo("YourLoginPath", true);
                else
                    Navigation.NavigateTo($"{YourLoginPath}?returnUrl={returnUrl}", true);
            }
        }
    }
    

    Modify App.razor:

    
        
            
                
            
        
    
    

    Credits go to: this article

提交回复
热议问题