Ejemplo n.º 1
0
        /// <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
            });
        }