public static string getUserName(HttpContext context) { string tokenString = AuthenticationHttpContextExtensions.GetTokenAsync(context, "access_token").Result; JwtSecurityTokenHandler handler = new JwtSecurityTokenHandler(); JwtSecurityToken token = handler.ReadJwtToken(tokenString); return(token.Subject); }
public async Task <IActionResult> Index() { ViewData["access_token"] = await AuthenticationHttpContextExtensions.GetTokenAsync(HttpContext, "access_token"); ViewData["id_token"] = await AuthenticationHttpContextExtensions.GetTokenAsync(HttpContext, "id_token"); return(View()); }
public async Task WriteOutIdentityInfo() { string identityToken = await AuthenticationHttpContextExtensions.GetTokenAsync(HttpContext, OpenIdConnectDefaults.AuthenticationScheme, OpenIdConnectParameterNames.IdToken); Debug.WriteLine($"Identity token: {identityToken}"); foreach (var claim in User.Claims) { Debug.WriteLine($"Claim type: {claim.Type} - Claim value: {claim.Value}"); } }
public async Task <IActionResult> Contact() { var accessToken = await AuthenticationHttpContextExtensions.GetTokenAsync(this.HttpContext, "access_token"); var client = new HttpClient(); client.SetBearerToken(accessToken); var res = await client.GetAsync("https://localhost:44325/api/custom"); return(Ok(res)); }
private async Task <string> RenewTokens(IConfiguration appConfiguration, IHttpContextAccessor httpContextAccessor) { // get the current HttpContext to access the tokens var currentContext = httpContextAccessor.HttpContext; // get the metadata var discoveryClient = new DiscoveryClient(appConfiguration.GetValue <string>("QuantusIdpBaseUri")); var metaDataResponse = await discoveryClient.GetAsync(); // create a new token client to get new tokens var tokenClient = new TokenClient(metaDataResponse.TokenEndpoint, "fittifyclient", "secret"); // get the saved refresh token Asp.Net Core 1.1 var currentRefreshToken = await AuthenticationHttpContextExtensions.GetTokenAsync(currentContext, OpenIdConnectParameterNames.RefreshToken); // refresh the tokens var tokenResult = await tokenClient.RequestRefreshTokenAsync(currentRefreshToken); if (!tokenResult.IsError) { // Save the tokens. var authenticateInfo = await httpContextAccessor.HttpContext .AuthenticateAsync(); var expiresAt = DateTime.UtcNow + TimeSpan.FromSeconds(tokenResult.ExpiresIn); authenticateInfo.Properties.UpdateTokenValue("expires_at", expiresAt.ToString("o", CultureInfo.InvariantCulture)); authenticateInfo.Properties.UpdateTokenValue( OpenIdConnectParameterNames.AccessToken, tokenResult.AccessToken); authenticateInfo.Properties.UpdateTokenValue( OpenIdConnectParameterNames.RefreshToken, tokenResult.RefreshToken); // we're signing in again with the new values. await httpContextAccessor.HttpContext.SignInAsync("Cookies", authenticateInfo.Principal, authenticateInfo.Properties); // return the new access token return(tokenResult.AccessToken); } else { throw new OpenIdConnectException("Problem encountered while refreshing tokens.", tokenResult.Exception); } }
public async Task Logout() { // get the metadata var discoveryClient = new DiscoveryClient(_appConfiguration.GetValue <string>("QuantusIdpBaseUri")); var metaDataResponse = await discoveryClient.GetAsync(); // create a TokenRevocationClient var revocationClient = new TokenRevocationClient( metaDataResponse.RevocationEndpoint, "fittifyclient", "secret"); // get the access token to revoke var accessToken = await AuthenticationHttpContextExtensions.GetTokenAsync( _httpContextAccessor.HttpContext, OpenIdConnectParameterNames.AccessToken); if (!string.IsNullOrWhiteSpace(accessToken)) { var revokeAccessTokenResponse = await revocationClient.RevokeAccessTokenAsync(accessToken); if (revokeAccessTokenResponse.IsError) { throw new OpenIdConnectException("Problem encountered while revoking the access token." , revokeAccessTokenResponse.Exception); } } // revoke the refresh token as well var refreshToken = await AuthenticationHttpContextExtensions.GetTokenAsync( _httpContextAccessor.HttpContext, OpenIdConnectParameterNames.RefreshToken); if (!string.IsNullOrWhiteSpace(refreshToken)) { var revokeRefreshTokenResponse = await revocationClient.RevokeRefreshTokenAsync(refreshToken); if (revokeRefreshTokenResponse.IsError) { throw new OpenIdConnectException("Problem encountered while revoking the refresh token." , revokeRefreshTokenResponse.Exception); } } await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); // Logging out of client await HttpContext.SignOutAsync(OpenIdConnectDefaults.AuthenticationScheme); // Logging out of IDP }
public async Task <ActionResult <IEnumerable <string> > > GetBackendAsync() { var FrontEndToken = await AuthenticationHttpContextExtensions.GetTokenAsync(HttpContext, "Bearer", "access_token"); string userId = User.FindFirst(ClaimTypes.Name)?.Value; var BackEndToken = CreateBackEndToken(userId); //Call the backend with a new Audience and issuer specified in the Backend token generated above. //var BackEndResponse = CallBackEndWithNewToken(BackEndToken); return(new string[] { "Token for calling the frontend api is", FrontEndToken, "Token for Calling back end api is", BackEndToken }); }
private async Task <string> GetBearerToken(string accessToken) { if (!string.IsNullOrEmpty(accessToken)) { return(accessToken); } else if (HttpContextHelper.HttpContext != null) { return(await AuthenticationHttpContextExtensions.GetTokenAsync( HttpContextHelper.HttpContext, "access_token")); } return(null); }
private async Task RefreshTokensAync() { var authorizatinServerInformation = await DiscoveryClient.GetAsync("http://localhost:26421"); var client = new TokenClient(authorizatinServerInformation.TokenEndpoint, "socialnetwork_code", "secret"); var refreshToken = await AuthenticationHttpContextExtensions.GetTokenAsync(this.HttpContext, "refresh_token"); var tokenResponse = await client.RequestRefreshTokenAsync(refreshToken); var identityToken = await AuthenticationHttpContextExtensions.GetTokenAsync(this.HttpContext, "id_token"); var expiresAt = DateTime.UtcNow + TimeSpan.FromSeconds(tokenResponse.ExpiresIn); var tokens = new[] { new AuthenticationToken { Name = OpenIdConnectParameterNames.IdToken, Value = tokenResponse.IdentityToken }, new AuthenticationToken { Name = OpenIdConnectParameterNames.AccessToken, Value = tokenResponse.AccessToken }, new AuthenticationToken { Name = OpenIdConnectParameterNames.RefreshToken, Value = tokenResponse.RefreshToken }, new AuthenticationToken { Name = "expires_at", Value = expiresAt.ToString("o", CultureInfo.InvariantCulture) } }; //var authenticationInformation =HttpContext.Authentication.GetAuthenticateInfoAsync(CookieAuthenticationDefaults.AuthenticationScheme); var authenticationInformation = await AuthenticationHttpContextExtensions.AuthenticateAsync(this.HttpContext, CookieAuthenticationDefaults.AuthenticationScheme); authenticationInformation.Properties.StoreTokens(tokens); await AuthenticationHttpContextExtensions.SignInAsync(this.HttpContext, CookieAuthenticationDefaults.AuthenticationScheme, authenticationInformation.Principal, authenticationInformation.Properties); }
public async Task <IActionResult> Shouts() { await RefreshTokens(); var token = await AuthenticationHttpContextExtensions.GetTokenAsync(HttpContext, "access_token"); using (var client = new HttpClient()) { client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token); var shoutsResponse = await(await client.GetAsync($"http://localhost:33918/api/shouts")).Content.ReadAsStringAsync(); var shouts = JsonConvert.DeserializeObject <Shout[]>(shoutsResponse); return(View(shouts)); } }
public async Task <IActionResult> About() { //get saved token var xtoken = await AuthenticationHttpContextExtensions .GetTokenAsync(HttpContext, OpenIdConnectParameterNames.IdToken); //write it out Debug.WriteLine("Iden token " + xtoken); //writeout Claims foreach (var claim in User.Claims) { Debug.WriteLine("claim type: " + claim.Type + "-- Claim Value " + claim.Value); } ViewData["Message"] = xtoken; return(View()); }
public async Task <IActionResult> Show() { var discoveryClient = new DiscoveryClient("https://localhost:44364/"); var metaDataResponse = await discoveryClient.GetAsync(); var userInfoClient = new UserInfoClient(metaDataResponse.UserInfoEndpoint); var accessToken = await AuthenticationHttpContextExtensions.GetTokenAsync(this.HttpContext, OpenIdConnectParameterNames.AccessToken); var response = await userInfoClient.GetAsync(accessToken); if (response.IsError) { throw new OpenIdConnectException("Problem accessing the UserInfo endpoint.", response.Exception); } var address = response.Claims.FirstOrDefault(c => c.Type == "address")?.Value; return(View("Index", new AddressViewModel(address))); }
public async Task <UserProfile> GetUserProfileFromToken(HttpContext httpContext) { var accessToken = await AuthenticationHttpContextExtensions.GetTokenAsync(httpContext, "access_token"); return(GetUserProfileFromClaimValues(accessToken)); }