Фикс обновления токена
All checks were successful
Create and publish a Docker image / Publish image (push) Successful in 3m32s
All checks were successful
Create and publish a Docker image / Publish image (push) Successful in 3m32s
This commit is contained in:
@@ -1,12 +1,14 @@
|
||||
using ModeusSchedule.Abstractions;
|
||||
using Quartz;
|
||||
using SfeduSchedule.Services;
|
||||
|
||||
namespace SfeduSchedule.Jobs;
|
||||
|
||||
public class UpdateJwtJob(
|
||||
IConfiguration configuration,
|
||||
ILogger<UpdateJwtJob> logger,
|
||||
IHttpClientFactory httpClientFactory) : IJob
|
||||
IHttpClientFactory httpClientFactory,
|
||||
ModeusService modeusService) : IJob
|
||||
{
|
||||
private const int MaxAttempts = 5; // Максимальное число попыток
|
||||
private const int DelaySeconds = 20; // Задержка между попытками в секундах
|
||||
@@ -68,7 +70,9 @@ public class UpdateJwtJob(
|
||||
}
|
||||
|
||||
configuration["TOKEN"] = body.Jwt;
|
||||
await File.WriteAllTextAsync(GlobalConsts.JwtFilePath, body.Jwt + "\n" + DateTime.Now.ToString("O"), cts.Token);
|
||||
modeusService.SetToken(body.Jwt);
|
||||
await File.WriteAllTextAsync(GlobalConsts.JwtFilePath,
|
||||
body.Jwt + "\n" + DateTime.Now.ToString("O"), cts.Token);
|
||||
logger.LogInformation("JWT успешно обновлён");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,17 @@ public class ModeusService
|
||||
_logger = logger;
|
||||
_configuration = configuration;
|
||||
_httpClient.BaseAddress = new Uri("https://sfedu.modeus.org/");
|
||||
var token = _configuration["TOKEN"];
|
||||
SetToken(_configuration["TOKEN"]);
|
||||
}
|
||||
|
||||
public void SetToken(string? token)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(token)) {
|
||||
_logger.LogError("SetToken: Предоставленный токен пустой.");
|
||||
return;
|
||||
}
|
||||
|
||||
_httpClient.DefaultRequestHeaders.Remove(HeaderNames.Authorization);
|
||||
_httpClient.DefaultRequestHeaders.Add(HeaderNames.Authorization, $"Bearer {token}");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user