made auth more efficient
This commit is contained in:
parent
0f46e5ddf7
commit
1d38081a6a
1 changed files with 26 additions and 9 deletions
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using System.Threading;
|
||||
using System.Timers;
|
||||
using System.Threading.Tasks;
|
||||
using BirdsiteLive.Common.Settings;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
@ -21,7 +22,9 @@ namespace BirdsiteLive.Twitter.Tools
|
|||
{
|
||||
private readonly ILogger<TwitterAuthenticationInitializer> _logger;
|
||||
private static bool _initialized;
|
||||
private static System.Timers.Timer aTimer;
|
||||
private readonly HttpClient _httpClient = new HttpClient();
|
||||
private HttpClient _twitterClient;
|
||||
private String _token;
|
||||
public String BearerToken {
|
||||
get { return "AAAAAAAAAAAAAAAAAAAAAPYXBAAAAAAACLXUNDekMxqa8h%2F40K4moUkGsoc%3DTYfbDKbT3jJPCEVnMYqilB28NHfOPqkca3qaAxGfsyKCs0wRbw"; }
|
||||
|
@ -34,6 +37,12 @@ namespace BirdsiteLive.Twitter.Tools
|
|||
public TwitterAuthenticationInitializer(ILogger<TwitterAuthenticationInitializer> logger)
|
||||
{
|
||||
_logger = logger;
|
||||
|
||||
aTimer = new System.Timers.Timer();
|
||||
aTimer.Interval = 900000; // 15 minutes
|
||||
aTimer.Elapsed += async (sender, e) => await RefreshCred();
|
||||
|
||||
aTimer.Start();
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
@ -44,6 +53,19 @@ namespace BirdsiteLive.Twitter.Tools
|
|||
await InitTwitterCredentials();
|
||||
}
|
||||
|
||||
private async Task RefreshCred()
|
||||
{
|
||||
(string bearer, string guest) = await GetCred();
|
||||
|
||||
HttpClient client = new HttpClient();
|
||||
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", $"Bearer " + bearer);
|
||||
client.DefaultRequestHeaders.TryAddWithoutValidation("x-guest-token", guest);
|
||||
client.DefaultRequestHeaders.TryAddWithoutValidation("Referer", "https://twitter.com/");
|
||||
client.DefaultRequestHeaders.TryAddWithoutValidation("x-twitter-active-user", "yes");
|
||||
|
||||
_twitterClient = client;
|
||||
}
|
||||
|
||||
private async Task<(string, string)> GetCred()
|
||||
{
|
||||
string token;
|
||||
|
@ -68,7 +90,7 @@ namespace BirdsiteLive.Twitter.Tools
|
|||
{
|
||||
try
|
||||
{
|
||||
(_, _token) = await GetCred();
|
||||
await RefreshCred();
|
||||
_initialized = true;
|
||||
return;
|
||||
}
|
||||
|
@ -82,14 +104,9 @@ namespace BirdsiteLive.Twitter.Tools
|
|||
|
||||
public async Task<HttpClient> MakeHttpClient()
|
||||
{
|
||||
(string bearer, string guest) = await GetCred();
|
||||
|
||||
HttpClient client = new HttpClient();
|
||||
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", $"Bearer " + bearer);
|
||||
client.DefaultRequestHeaders.TryAddWithoutValidation("x-guest-token", guest);
|
||||
client.DefaultRequestHeaders.TryAddWithoutValidation("Referer", "https://twitter.com/");
|
||||
client.DefaultRequestHeaders.TryAddWithoutValidation("x-twitter-active-user", "yes");
|
||||
return client;
|
||||
if (_twitterClient == null)
|
||||
await RefreshCred();
|
||||
return _twitterClient;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue