private Tuple <Token, User> GenerateToken(User user)
        {
            var secureDataFormat = new TicketDataFormat(_dataProtector);
            var expirationDate   = DateTimeOffset.UtcNow.AddDays(1);

            var identity = new ClaimsIdentity(OAuthDefaults.AuthenticationType);

            identity.AddClaims(user.GetClaims());

            var tokenValue = secureDataFormat.Protect(new AuthenticationTicket(identity, new AuthenticationProperties()
            {
                IssuedUtc  = DateTime.UtcNow,
                ExpiresUtc = expirationDate
            }));

            var token = new Token()
            {
                AccessToken = tokenValue,
                TokenType   = OAuthDefaults.AuthenticationType,
                ExpiresAt   = expirationDate,
                ExpiresIn   = (uint)(expirationDate - DateTime.UtcNow).TotalSeconds
            };

            return(Tuple.Create(token, user));
        }