Merge pull request from Shchoholiev/bug/SA-142-fix-login-page-loop

SA-142 login loop fixed
This commit is contained in:
Mykhailo Bilodid 2023-11-01 17:58:30 +02:00 committed by GitHub
commit 7224f7c60e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 14 deletions
ShoppingAssistantWebClient.Web

View File

@ -15,7 +15,7 @@ public static class DependencyInjectionExtension
client.BaseAddress = new Uri(apiUrl + "api/");
});
services.AddScoped<GraphQLHttpClient>(p =>
services.AddSingleton<GraphQLHttpClient>(p =>
new GraphQLHttpClient(apiUrl + "graphql", new NewtonsoftJsonSerializer())
);

View File

@ -15,22 +15,25 @@ public class GlobalUserMiddleware
public async Task InvokeAsync(HttpContext httpContext, AuthenticationService authenticationService, ApiClient apiClient)
{
try
if (httpContext.Request.Path != "/login")
{
var accessToken = await authenticationService.GetAuthTokenAsync();
if (!string.IsNullOrEmpty(accessToken))
try
{
apiClient.JwtToken = accessToken;
GlobalUser.Roles = authenticationService.GetRolesFromJwtToken(accessToken);
GlobalUser.Id = authenticationService.GetIdFromJwtToken(accessToken);
GlobalUser.Email = authenticationService.GetEmailFromJwtToken(accessToken);
GlobalUser.Phone = authenticationService.GetPhoneFromJwtToken(accessToken);
var accessToken = await authenticationService.GetAuthTokenAsync();
if (!string.IsNullOrEmpty(accessToken))
{
apiClient.JwtToken = accessToken;
GlobalUser.Roles = authenticationService.GetRolesFromJwtToken(accessToken);
GlobalUser.Id = authenticationService.GetIdFromJwtToken(accessToken);
GlobalUser.Email = authenticationService.GetEmailFromJwtToken(accessToken);
GlobalUser.Phone = authenticationService.GetPhoneFromJwtToken(accessToken);
}
}
catch (AuthenticationException ex)
{
httpContext.Response.Cookies.Delete("accessToken");
httpContext.Response.Redirect("/login");
}
}
catch (AuthenticationException ex)
{
httpContext.Response.Cookies.Delete("accessToken");
httpContext.Response.Redirect("/login");
}
await _next(httpContext);
}