public static async Task <LoginResult> Start(IBrowser browser) { //Do not use this in production environment. var handler = HttpClientExtensions.CreateHttpClientHandler(true); var options = new OidcClientOptions { Authority = Config.IdentityServerUrl, BackchannelHandler = handler, Browser = browser, ClientId = "NativeClient", ClientSecret = "KHG+TZ8aaVx2h3^!vJ65", FilterClaims = false, Flow = OidcClientOptions.AuthenticationFlow.AuthorizationCode, LoadProfile = true, Scope = "openid profile Api1 Cluster", RedirectUri = Config.NativeClientUrl, RefreshTokenInnerHttpHandler = handler, ResponseMode = OidcClientOptions.AuthorizeResponseMode.Redirect }; var client = new OidcClient(options); return(await client.LoginAsync(new LoginRequest())); }
private static async Task <string> TryGetUserProfile(string accessToken) { if (string.IsNullOrWhiteSpace(accessToken)) { throw new ArgumentException(); } var httpClient = new HttpClient(HttpClientExtensions.CreateHttpClientHandler(true)); httpClient.SetBearerToken(accessToken); string result; var response = await httpClient.GetAsync($"{Common.Config.ApiUrl}/api/User/Alice"); if (response.IsSuccessStatusCode) { result = await response.Content.ReadAsStringAsync(); } else { result = response.ReasonPhrase; } return(result); }
public async Task <IActionResult> Profile() { var accessToken = await _httpContextAccessor.HttpContext.GetTokenAsync("access_token"); _logger.LogInformation(new EventId(LogEvents.AccessTokenRetrieved), $"Access Token: successfully retrieved."); var httpClient = new HttpClient(HttpClientExtensions.CreateHttpClientHandler(true)); httpClient.SetBearerToken(accessToken); string result; var response = await httpClient.GetAsync($"{Common.Config.ApiUrl}/api/User/Alice"); if (response.IsSuccessStatusCode) { result = await response.Content.ReadAsStringAsync(); } else { result = response.ReasonPhrase; } ViewBag.Response = result; return(View("~/User/Profile.cshtml")); }