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>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="MoonCore" Version="1.7.3" />
|
<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="MoonCore.PluginFramework" Version="1.0.4" />
|
||||||
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.2" />
|
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.2" />
|
||||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0"/>
|
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0"/>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using MoonCore.Extended.Extensions;
|
||||||
using MoonCore.Extended.Helpers;
|
using MoonCore.Extended.Helpers;
|
||||||
using MoonCore.Extensions;
|
using MoonCore.Extensions;
|
||||||
using MoonCore.Helpers;
|
using MoonCore.Helpers;
|
||||||
@@ -142,7 +143,7 @@ if (config.Client.Enable)
|
|||||||
|
|
||||||
app.UseRouting();
|
app.UseRouting();
|
||||||
|
|
||||||
app.UseMiddleware<ApiErrorMiddleware>();
|
app.UseApiErrorHandling();
|
||||||
|
|
||||||
await Startup.UseTokenAuthentication(app);
|
await Startup.UseTokenAuthentication(app);
|
||||||
await Startup.UseOAuth2(app);
|
await Startup.UseOAuth2(app);
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ public static class Startup
|
|||||||
var logger = loggerFactory.CreateLogger("OAuth2 Refresh");
|
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
|
// 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;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -306,6 +306,14 @@ public static class Startup
|
|||||||
if (user == null)
|
if (user == null)
|
||||||
throw new HttpApiException("OAuth2 provider returned empty user", 500);
|
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>()
|
return new Dictionary<string, object>()
|
||||||
{
|
{
|
||||||
{"userId", user.Id}
|
{"userId", user.Id}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<PackageReference Include="MoonCore" Version="1.7.3" />
|
<PackageReference Include="MoonCore" Version="1.7.3" />
|
||||||
<PackageReference Include="MoonCore.Blazor" Version="1.2.6" />
|
<PackageReference Include="MoonCore.Blazor" Version="1.2.6" />
|
||||||
<PackageReference Include="MoonCore.PluginFramework" Version="1.0.4" />
|
<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>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
Reference in New Issue
Block a user