User model and basic sign-in/sign-up/sign-out logic