public string GetToken(string user, DateTime?expires) { var handler = new JwtSecurityTokenHandler(); var identity = _claimsIdentityProvider.GetClaimsIdentity("abc123"); var securityTokenDescriptor = new SecurityTokenDescriptor { // Issuer TokenIssuerName = _applicationSettingsProvider.GetValue("JWT.Issuer"), //Audience = tokenOptions.Audience, AppliesToAddress = _applicationSettingsProvider.GetValue("JWT.Audience"), // Audience SigningCredentials = _signingCredentialsProvider.GetSigningCredentials(), Subject = identity, //Expires = expires Lifetime = new Lifetime(DateTime.Now, expires) }; var securityToken = handler.CreateToken(securityTokenDescriptor); return(handler.WriteToken(securityToken)); }
public string Protect(AuthenticationTicket data) { if (data == null) { throw new ArgumentNullException("data"); } var issuer = _appSettings.GetValue("JWT.Issuer"); var audience = _appSettings.GetValue("JWT.Audience"); var validFrom = DateTime.UtcNow; var expires = validFrom.AddMinutes(Convert.ToInt32(_appSettings.GetValue("JWT.Expires"))); var signingCredentials = _signingCredentialsProvider.GetSigningCredentials(); var token = new JwtSecurityToken(issuer, audience, data.Identity.Claims, validFrom, expires, signingCredentials); return(new JwtSecurityTokenHandler().WriteToken(token)); }
/// <summary> /// Transforms the specified authentication ticket into a JWT. /// </summary> /// <param name="data">The authentication ticket to transform into a JWT.</param> /// <returns></returns> public string Protect(AuthenticationTicket data) { if (data == null) { throw new ArgumentNullException("data"); } string issuer; string audience; data.Properties.Dictionary.TryGetValue("issuer", out issuer); data.Properties.Dictionary.TryGetValue("audience", out audience); if (issuer == null) { throw new InvalidOperationException("AuthenticationTicket.Properties does not include 'Issuer' value."); } if (audience == null) { throw new InvalidOperationException("AuthenticationTicket.Properties does not include 'Audience' value."); } DateTime issuedUtc = data.Properties.IssuedUtc.HasValue ? GetUtcDateTime(data.Properties.IssuedUtc.Value) : DateTime.UtcNow; DateTime expiresUtc = data.Properties.ExpiresUtc.HasValue ? GetUtcDateTime(data.Properties.ExpiresUtc.Value) : DateTime.UtcNow.Add(_defaultJwtExpireTimeSpan); SigningCredentials signingCredentials = _signingCredentialsProvider.GetSigningCredentials(issuer, audience); JwtSecurityToken token = new JwtSecurityToken( issuer: issuer, audience: audience, claims: data.Identity.Claims, expires: expiresUtc, signingCredentials: signingCredentials ); return(new JwtSecurityTokenHandler().WriteToken(token)); }