Switched to LocalStorage. Upgraded MoonCore. Improved auth flow

This commit is contained in:
Masu Baumgartner
2024-10-23 21:37:26 +02:00
parent 910f190c86
commit 6f3341e6ad
7 changed files with 76 additions and 89 deletions

View File

@@ -3,6 +3,7 @@
@inject IdentityService IdentityService
@inject ToastService ToastService
@inject NavigationManager Navigation
<div class="sticky top-0 z-40 flex h-16 shrink-0 items-center gap-x-4 bg-gray-800/60 backdrop-blur px-4 shadow-sm sm:gap-x-6 sm:px-6 lg:px-8">
@if (Layout.ShowMobileNavigation)
@@ -112,6 +113,7 @@
await IdentityService.Logout();
await ToastService.Info("Successfully logged out");
await Layout.Load();
//await Layout.Load();
Navigation.NavigateTo(Navigation.Uri, true);
}
}

View File

@@ -1,5 +1,6 @@
@page "/auth"
@using MoonCore.Blazor.Services
@using MoonCore.Helpers
@using Moonlight.Client.Services
@using Moonlight.Shared.Http.Requests.Auth
@@ -7,9 +8,9 @@
@inject NavigationManager Navigation
@inject HttpApiClient HttpApiClient
@inject CookieService CookieService
@inject WindowService WindowService
@inject HttpClient HttpClient
@inject LocalStorageService LocalStorageService
@if (Code == null)
{
@@ -95,9 +96,9 @@ else
Code = Code
});
await CookieService.SetValue("kms-access", authHandleData.AccessToken, 10);
await CookieService.SetValue("kms-refresh", authHandleData.RefreshToken, 10);
await CookieService.SetValue("kms-timestamp", DateTimeOffset.UtcNow.AddSeconds(60).ToUnixTimeSeconds().ToString(), 10);
await LocalStorageService.SetString("AccessToken", authHandleData.AccessToken);
await LocalStorageService.SetString("RefreshToken", authHandleData.RefreshToken);
await LocalStorageService.Set("ExpiresAt", authHandleData.ExpiresAt);
try
{
@@ -124,8 +125,8 @@ else
await WindowService.Open(
uri,
"OAuth2 Flow",
500,
650
600,
450
);
IsAuthenticating = true;
@@ -139,17 +140,23 @@ else
try
{
if(!await LocalStorageService.ContainsKey("AccessToken"))
continue;
if (HttpClient.DefaultRequestHeaders.Contains("Authorization"))
HttpClient.DefaultRequestHeaders.Remove("Authorization");
HttpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + await CookieService.GetValue("kms-access", "x"));
HttpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + await LocalStorageService.GetString("AccessToken"));
var res = await HttpClient.GetAsync("api/auth/check");
if(res.IsSuccessStatusCode)
if (res.IsSuccessStatusCode)
break;
}
finally{}
catch (Exception e)
{
Console.WriteLine(e);
}
}
Navigation.NavigateTo(Navigation.Uri, true);