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
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