Fixed smaller issues with refreshing the access token on frontend side

+ Saving the access and refresh token on server side
This commit is contained in:
Masu Baumgartner
2024-11-07 00:42:23 +01:00
parent f9c4ec1d31
commit add4c3e99f
4 changed files with 13 additions and 4 deletions

View File

@@ -14,7 +14,7 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="MoonCore" Version="1.7.3" />
<PackageReference Include="MoonCore.Extended" Version="1.1.4" />
<PackageReference Include="MoonCore.Extended" Version="1.1.5" />
<PackageReference Include="MoonCore.PluginFramework" Version="1.0.4" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.2" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0"/>

View File

@@ -1,5 +1,6 @@
using System.Net;
using System.Reflection;
using MoonCore.Extended.Extensions;
using MoonCore.Extended.Helpers;
using MoonCore.Extensions;
using MoonCore.Helpers;
@@ -142,7 +143,7 @@ if (config.Client.Enable)
app.UseRouting();
app.UseMiddleware<ApiErrorMiddleware>();
app.UseApiErrorHandling();
await Startup.UseTokenAuthentication(app);
await Startup.UseOAuth2(app);

View File

@@ -196,7 +196,7 @@ public static class Startup
var logger = loggerFactory.CreateLogger("OAuth2 Refresh");
// We are handling this error more softly, because it will occur when a user hasn't logged in a long period of time
logger.LogDebug("An error occured while refreshing external oauth2 access: {e}", e);
logger.LogTrace("An error occured while refreshing external oauth2 access: {e}", e);
return false;
}
}
@@ -306,6 +306,14 @@ public static class Startup
if (user == null)
throw new HttpApiException("OAuth2 provider returned empty user", 500);
// Save new token
user.AccessToken = accessData.AccessToken;
user.RefreshToken = accessData.RefreshToken;
user.RefreshTimestamp = DateTime.UtcNow.AddSeconds(accessData.ExpiresIn);
var userRepo = serviceProvider.GetRequiredService<DatabaseRepository<User>>();
userRepo.Update(user);
return new Dictionary<string, object>()
{
{"userId", user.Id}

View File

@@ -15,7 +15,7 @@
<PackageReference Include="MoonCore" Version="1.7.3" />
<PackageReference Include="MoonCore.Blazor" Version="1.2.6" />
<PackageReference Include="MoonCore.PluginFramework" Version="1.0.4" />
<PackageReference Include="MoonCore.Blazor.Tailwind" Version="1.1.1" />
<PackageReference Include="MoonCore.Blazor.Tailwind" Version="1.1.2" />
</ItemGroup>
<ItemGroup>