feat: add auth functionality