public async Task <Uri> ExecuteAsync( AcquireTokenCommonParameters commonParameters, GetAuthorizationRequestUrlParameters authorizationRequestUrlParameters, CancellationToken cancellationToken) { var requestContext = CreateRequestContextAndLogVersionInfo(commonParameters.CorrelationId, cancellationToken); var requestParameters = _confidentialClientApplication.CreateRequestParameters( commonParameters, requestContext, _confidentialClientApplication.UserTokenCacheInternal); requestParameters.Account = authorizationRequestUrlParameters.Account; requestParameters.LoginHint = authorizationRequestUrlParameters.LoginHint; if (!string.IsNullOrWhiteSpace(authorizationRequestUrlParameters.RedirectUri)) { requestParameters.RedirectUri = new Uri(authorizationRequestUrlParameters.RedirectUri); } await AuthorityEndpoints.UpdateAuthorityEndpointsAsync(requestParameters).ConfigureAwait(false); var handler = new AuthCodeRequestComponent( requestParameters, authorizationRequestUrlParameters.ToInteractiveParameters()); return(handler.GetAuthorizationUriWithoutPkce()); }
private async Task <MsalTokenResponse> RefreshAccessTokenAsync(MsalRefreshTokenCacheItem msalRefreshTokenItem, CancellationToken cancellationToken) { AuthenticationRequestParameters.RequestContext.Logger.Verbose("Refreshing access token..."); await AuthorityEndpoints.UpdateAuthorityEndpointsAsync(AuthenticationRequestParameters) .ConfigureAwait(false); var msalTokenResponse = await _silentRequest.SendTokenRequestAsync(GetBodyParameters(msalRefreshTokenItem.Secret), cancellationToken) .ConfigureAwait(false); if (msalTokenResponse.RefreshToken == null) { msalTokenResponse.RefreshToken = msalRefreshTokenItem.Secret; AuthenticationRequestParameters.RequestContext.Logger.Info( "Refresh token was missing from the token refresh response, so the refresh token in the request is returned instead"); } return(msalTokenResponse); }
protected async Task ResolveAuthorityEndpointsAsync() { await AuthorityEndpoints.UpdateAuthorityEndpointsAsync(AuthenticationRequestParameters) .ConfigureAwait(false); }