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;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
using System.Timers;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using BirdsiteLive.Common.Settings;
|
using BirdsiteLive.Common.Settings;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
@ -21,7 +22,9 @@ namespace BirdsiteLive.Twitter.Tools
|
||||||
{
|
{
|
||||||
private readonly ILogger<TwitterAuthenticationInitializer> _logger;
|
private readonly ILogger<TwitterAuthenticationInitializer> _logger;
|
||||||
private static bool _initialized;
|
private static bool _initialized;
|
||||||
|
private static System.Timers.Timer aTimer;
|
||||||
private readonly HttpClient _httpClient = new HttpClient();
|
private readonly HttpClient _httpClient = new HttpClient();
|
||||||
|
private HttpClient _twitterClient;
|
||||||
private String _token;
|
private String _token;
|
||||||
public String BearerToken {
|
public String BearerToken {
|
||||||
get { return "AAAAAAAAAAAAAAAAAAAAAPYXBAAAAAAACLXUNDekMxqa8h%2F40K4moUkGsoc%3DTYfbDKbT3jJPCEVnMYqilB28NHfOPqkca3qaAxGfsyKCs0wRbw"; }
|
get { return "AAAAAAAAAAAAAAAAAAAAAPYXBAAAAAAACLXUNDekMxqa8h%2F40K4moUkGsoc%3DTYfbDKbT3jJPCEVnMYqilB28NHfOPqkca3qaAxGfsyKCs0wRbw"; }
|
||||||
|
@ -34,6 +37,12 @@ namespace BirdsiteLive.Twitter.Tools
|
||||||
public TwitterAuthenticationInitializer(ILogger<TwitterAuthenticationInitializer> logger)
|
public TwitterAuthenticationInitializer(ILogger<TwitterAuthenticationInitializer> logger)
|
||||||
{
|
{
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
|
|
||||||
|
aTimer = new System.Timers.Timer();
|
||||||
|
aTimer.Interval = 900000; // 15 minutes
|
||||||
|
aTimer.Elapsed += async (sender, e) => await RefreshCred();
|
||||||
|
|
||||||
|
aTimer.Start();
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -44,6 +53,19 @@ namespace BirdsiteLive.Twitter.Tools
|
||||||
await InitTwitterCredentials();
|
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()
|
private async Task<(string, string)> GetCred()
|
||||||
{
|
{
|
||||||
string token;
|
string token;
|
||||||
|
@ -68,7 +90,7 @@ namespace BirdsiteLive.Twitter.Tools
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
(_, _token) = await GetCred();
|
await RefreshCred();
|
||||||
_initialized = true;
|
_initialized = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -82,14 +104,9 @@ namespace BirdsiteLive.Twitter.Tools
|
||||||
|
|
||||||
public async Task<HttpClient> MakeHttpClient()
|
public async Task<HttpClient> MakeHttpClient()
|
||||||
{
|
{
|
||||||
(string bearer, string guest) = await GetCred();
|
if (_twitterClient == null)
|
||||||
|
await RefreshCred();
|
||||||
HttpClient client = new HttpClient();
|
return _twitterClient;
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Reference in a new issue