in src/Authentication/MsalInteractiveTokenProvider.cs [31:61]
public async Task<AuthenticationResult?> GetTokenAsync(TokenRequest tokenRequest, CancellationToken cancellationToken = default)
{
if (!app.IsUserInteractive())
{
logger.LogTrace(Resources.MsalNotUserInteractive);
return null;
}
using CancellationTokenSource cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
cts.CancelAfter(tokenRequest.InteractiveTimeout);
try
{
var result = await app.AcquireTokenInteractive(MsalConstants.AzureDevOpsScopes)
.WithPrompt(Prompt.SelectAccount)
.WithUseEmbeddedWebView(false)
.ExecuteAsync(cts.Token);
return result;
}
catch (MsalClientException ex) when (ex.ErrorCode == MsalError.AuthenticationCanceledError)
{
logger.LogWarning(ex.Message);
return null;
}
catch (OperationCanceledException ex) when (cts.IsCancellationRequested)
{
logger.LogWarning(ex.Message);
return null;
}
}