33 lines
1.0 KiB
C#
33 lines
1.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using Microsoft.Kiota.Abstractions.Authentication;
|
|
using Wino.Core.Domain.Entities.Shared;
|
|
using Wino.Core.Domain.Interfaces;
|
|
|
|
namespace Wino.Core.Http;
|
|
|
|
public class MicrosoftTokenProvider : IAccessTokenProvider
|
|
{
|
|
private readonly MailAccount _account;
|
|
private readonly IAuthenticator _authenticator;
|
|
|
|
public MicrosoftTokenProvider(MailAccount account, IAuthenticator authenticator)
|
|
{
|
|
_account = account;
|
|
_authenticator = authenticator;
|
|
}
|
|
|
|
public AllowedHostsValidator AllowedHostsValidator { get; }
|
|
|
|
public async Task<string> GetAuthorizationTokenAsync(Uri uri,
|
|
Dictionary<string, object> additionalAuthenticationContext = null,
|
|
CancellationToken cancellationToken = default)
|
|
{
|
|
var tokenInfo = await _authenticator.GetTokenInformationAsync(_account);
|
|
|
|
return tokenInfo.AccessToken;
|
|
}
|
|
}
|