User model for authentication