Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public class RefreshTokenDelegatingHandler : DelegatingHandler
private string _accessToken;
private string _accessTokenType;
private string _refreshToken;
private DateTime? _validUntil;

private bool _disposed;

Expand Down Expand Up @@ -120,7 +121,7 @@ public RefreshTokenDelegatingHandler(OidcClient oidcClient, string accessToken,
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
var accessToken = await GetAccessTokenAsync(cancellationToken);
if (accessToken.IsMissing())
if (accessToken.IsMissing() || (_validUntil.HasValue && _validUntil.Value < DateTime.Now))
{
if (await RefreshTokensAsync(cancellationToken) == false)
{
Expand Down Expand Up @@ -182,6 +183,7 @@ private async Task<bool> RefreshTokensAsync(CancellationToken cancellationToken)
if (!response.IsError)
{
_accessToken = response.AccessToken;
_validUntil = DateTime.Now.AddSeconds(response.ExpiresIn);
if (!response.RefreshToken.IsMissing())
{
_refreshToken = response.RefreshToken;
Expand Down