public string GenerateJwtToken(DbUser user, IList <string> roles)
        {
            var          tokenHandler = new JwtSecurityTokenHandler();
            List <Claim> claims       = new List <Claim>()
            {
                new Claim(Names.ID, user.Id),
            };

            foreach (var role in roles)
            {
                claims.Add(new Claim(Names.ROLE, role));
            }

            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(claims),

                Expires            = DateTime.UtcNow.AddSeconds(jwtBearerTokenSettings.TokenLifetime),
                SigningCredentials = new SigningCredentials(
                    jwtBearerTokenSettings.GetSymmetricSecurityKey(),
                    SecurityAlgorithms.HmacSha256Signature)
            };

            var token = tokenHandler.CreateToken(tokenDescriptor);

            return(tokenHandler.WriteToken(token));
        }