async def METHOD_NAME(self, username: str, password: str):
    try:
        payload = await self._login_step1()
        data = await self._login_step2(username, password, payload)
        if not data["location"]:
            return False
        token = await self._login_step3(data["location"])
        self.auth = {
            "user_id": data["userId"],
            "ssecurity": data["ssecurity"],
            "service_token": token,
        }
        return True
    except Exception as e:
        _LOGGER.exception(f"Can't login to Mi Cloud: {e}")
        return False