/// <summary> /// Create new token for claims /// </summary> /// <param name="claims"></param> /// <returns></returns> public Token CreateNewToken(IEnumerable <Claim> claims) { var signingCredentials = new SigningCredentials(_parameters.GetSymetricSecurityKey(), SecurityAlgorithms.HmacSha256Signature); var expiration = DateTime.UtcNow.AddMinutes(_parameters.ExpirationInMinutes); var tokenHandler = new JwtSecurityTokenHandler(); var tokenDescriptor = new SecurityTokenDescriptor { Issuer = _parameters.Issuer, Audience = _parameters.Audience, Subject = new ClaimsIdentity(claims, "JWT", ClaimTypes.Name, ClaimTypes.Role), Expires = expiration, SigningCredentials = signingCredentials }; var stoken = tokenHandler.CreateToken(tokenDescriptor); return(new Token { Value = tokenHandler.WriteToken(stoken), Expiration = expiration }); }