private async Task <Models.TokenResponse> Authenticate(string UserName, string Password) { HttpClient client = new HttpClient(); var url = "http://127.0.0.1:8080/api/home/authenticate"; client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var content = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("Username", UserName), new KeyValuePair <string, string>("Password", Password) }); HttpResponseMessage response = await client.PostAsync(url, content); var data = await response.Content.ReadAsStringAsync(); Models.TokenResponse MyToken = Newtonsoft.Json.JsonConvert.DeserializeObject <Models.TokenResponse>(data); return(MyToken); }
public async Task <TokenResponse> GetAccessToken() { var tokenEndpoint = _openIdConnectConfiguration.TokenProviderUri.AbsoluteUri; var clientId = _openIdConnectConfiguration.ClientId; var clientSecret = _openIdConnectConfiguration.ClientSecret; var scope = _openIdConnectConfiguration.Scope; using var client = _httpClientFactory.Create(); var tokenRequest = new ClientCredentialsTokenRequest { Address = tokenEndpoint, ClientId = clientId, ClientSecret = clientSecret, Scope = scope }; try { var response = await client.RequestClientCredentialsTokenAsync(tokenRequest); if (response.IsError || string.IsNullOrWhiteSpace(response.AccessToken)) { var message = "The token provider returned an error"; throw new OpenIdConnectException(message); } var token = response.AccessToken; var lifeInSeconds = response.ExpiresIn; var tokenResponse = new TokenResponse(token, lifeInSeconds); return(tokenResponse); } catch (Exception exception) { var message = $"Unable to retrieve token from {tokenEndpoint} for client Id {clientId} and scope: {scope}"; throw new OpenIdConnectException(message, exception); } }