in src/Authentication/MsalDeviceCodeTokenProvider.cs [30:52]
public async Task<AuthenticationResult?> GetTokenAsync(TokenRequest tokenRequest, CancellationToken cancellationToken = default)
{
using CancellationTokenSource cts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
cts.CancelAfter(tokenRequest.InteractiveTimeout);
try
{
var result = await app.AcquireTokenWithDeviceCode(MsalConstants.AzureDevOpsScopes, tokenRequest.DeviceCodeResultCallback ?? ((DeviceCodeResult deviceCodeResult) =>
{
logger.LogInformation(deviceCodeResult.Message);
return Task.CompletedTask;
}))
.ExecuteAsync(cts.Token);
return result;
}
catch (OperationCanceledException ex) when (cts.IsCancellationRequested)
{
logger.LogWarning(ex.Message);
return null;
}
}