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:
@@ -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"/>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user