public static string BuildToken(UserResponseUtil userResponseUtil, string secret)
        {
            var claims = new Claim[]
            {
                new Claim(JwtRegisteredClaimNames.UniqueName, userResponseUtil.UserID),
                new Claim(JwtRegisteredClaimNames.Email, userResponseUtil.Email),
                new Claim(ClaimTypes.Role, userResponseUtil.Role)
                //new Claim(JwtRegisteredClaimNames.Iss, key),
            };

            var secretKey =
                Encoding.UTF8.GetBytes(secret);

            var expiration =
                DateTime.UtcNow.AddHours(1);

            var creds =
                new SigningCredentials(new SymmetricSecurityKey(secretKey), SecurityAlgorithms.HmacSha256Signature);

            JwtSecurityToken token = new JwtSecurityToken(
                issuer: null,
                audience: null,
                claims: claims,
                expires: expiration,
                signingCredentials: creds);

            return(new JwtSecurityTokenHandler().WriteToken(token));
        }
        public async Task <AuthResponse> AuthAndGenerateToken(AuthReadRequest authReadRequest)
        {
            UserResponse userResponse =
                await GetUser(authReadRequest);

            string secret =
                _configuration["Authentication:Secret"];

            UserResponseUtil userToUserUtil =
                _mapper.Map <UserResponseUtil>(userResponse);

            string tokenBuilded =
                TokenBuilder.BuildToken(userToUserUtil, secret);

            return(new AuthResponse
            {
                User = userResponse,
                Token = new TokenResponse
                {
                    Token = tokenBuilded
                }
            });
        }