实现了完整的登录逻辑，但是充满烂代码和 Hack，需要清理