public ClaimsPrincipal Create(string sessionKey, IAppUser user)
    {
        var claims   = new XtiClaimsCreator(sessionKey, user).Values();
        var identity = new ClaimsIdentity(claims, "Test");

        return(new ClaimsPrincipal(identity));
    }
        public async Task <LoginResult> Authenticate(string userName, string password)
        {
            var hashedPassword = hashedPasswordFactory.Create(password);
            var user           = await unverifiedUser.Verify(new AppUserName(userName), hashedPassword);

            var authSession = await tempLog.AuthenticateSession(user.UserName().Value);

            var claims = new XtiClaimsCreator(authSession.SessionKey, user).Values();
            var token  = await access.GenerateToken(claims);

            userContext.ClearCache(user.UserName());
            return(new LoginResult(token));
        }