Authentication fix

This commit is contained in:
Adam 2024-05-23 10:06:57 +02:00
parent ae59dc8d15
commit 42dbf40f5a
3 changed files with 29 additions and 19 deletions

View File

@ -2,6 +2,7 @@
@using TIAMWebApp.Shared.Application.Interfaces
@using AyCode.Interfaces.StorageHandlers
@using Microsoft.Extensions.Localization
@using Microsoft.AspNetCore.Components.Authorization
@ -99,7 +100,15 @@
</ul>
<ul class="nav navbar-nav navbar-right">
<AuthorizeView>
<Authorized>
<li class="nav-item">
<NavLink class="nav-link" href="login">
Test
</NavLink>
</li>
</Authorized>
</AuthorizeView>
@if(enableLogin)
{
if (!myUser && enableLogin)

View File

@ -93,7 +93,8 @@ namespace TIAMSharedUI.Shared.Components
serverResult = await UserDataService.Logout(userBasicDetail.RefreshToken);
}
await SecureStorageHandler.ClearAllSecureStorageAsync();
await AuthStateProvider.GetAuthenticationStateAsync();
var result = await AuthStateProvider.GetAuthenticationStateAsync();
sessionService.User = null;
sessionService.IsAuthenticated = false;
navigationManager.NavigateTo("/");

View File

@ -14,7 +14,6 @@ namespace TIAMWebApp.Shared.Application.Services
private readonly ISecureStorageHandler _localStorage;
private readonly HttpClient _http;
public CustomAuthStateProvider(ISecureStorageHandler localStorage, HttpClient http)
{
@ -28,30 +27,31 @@ namespace TIAMWebApp.Shared.Application.Services
AuthenticationState state = null;
if (!string.IsNullOrEmpty(userDetailsStr))
{
var userBasicDetail = JsonConvert.DeserializeObject<UserBasicDetails>(userDetailsStr);
//var handler = new JwtSecurityTokenHandler();
//var jsontoken = handler.ReadToken(userBasicDetail?.AccessToken) as JwtSecurityToken;
var token = userBasicDetail?.AccessToken;
var identity = new ClaimsIdentity();
_http.DefaultRequestHeaders.Authorization = null;
var userBasicDetail = JsonConvert.DeserializeObject<UserBasicDetails>(userDetailsStr);
if (!string.IsNullOrEmpty(token))
{
identity = new ClaimsIdentity(ParseClaimsFromJwt(token), "jwt");
_http.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", token.Replace("\"", ""));
}
//var handler = new JwtSecurityTokenHandler();
//var jsontoken = handler.ReadToken(userBasicDetail?.AccessToken) as JwtSecurityToken;
var token = userBasicDetail?.AccessToken;
var identity = new ClaimsIdentity();
_http.DefaultRequestHeaders.Authorization = null;
var user = new ClaimsPrincipal(identity);
state = new AuthenticationState(user);
if (!string.IsNullOrEmpty(token))
{
identity = new ClaimsIdentity(ParseClaimsFromJwt(token), "jwt");
_http.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", token.Replace("\"", ""));
}
NotifyAuthenticationStateChanged(Task.FromResult(state));
var user = new ClaimsPrincipal(identity);
state = new AuthenticationState(user);
NotifyAuthenticationStateChanged(Task.FromResult(state));
}
else
{
state = new AuthenticationState(new ClaimsPrincipal());
NotifyAuthenticationStateChanged(Task.FromResult(state));
}
return state;