Fix for 450 reauthentication failure bug (#372)

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
This commit is contained in:
Gary Cobb 2022-02-16 17:51:28 -05:00 committed by GitHub
parent 42331c3e37
commit cc631cdce7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -105,13 +105,16 @@ class PyiCloudSession(Session):
fmip_url = self.service._get_webservice_url("findme")
if (
has_retried is None
and response.status_code == 450
and response.status_code in [421, 450, 500]
and fmip_url in url
):
# Handle re-authentication for Find My iPhone
LOGGER.debug("Re-authenticating Find My iPhone service")
try:
self.service.authenticate(True, "find")
# If 450, authentication requires a full sign in to the account
service = None if response.status_code == 450 else "find"
self.service.authenticate(True, service)
except PyiCloudAPIResponseException:
LOGGER.debug("Re-authentication failed")
kwargs["retried"] = True