refactor(auth) authenticate