keep the same device_id when create new_otp_session

This commit is contained in:
Florian Bezannier
2021-03-23 12:04:03 +01:00
parent dccfebc1d7
commit 36a8379817
2 changed files with 12 additions and 9 deletions
+5 -5
View File
@@ -228,11 +228,11 @@ class MyPSACC:
logger.error(traceback.format_exc())
return self.vehicles_list
def load_otp(self, new=False):
def load_otp(self, force_new=False):
otp_session = load_otp()
if otp_session is None or new:
if otp_session is None or force_new:
self.get_sms_otp_code()
otp_session = new_otp_session()
otp_session = new_otp_session(otp_session)
self.otp = otp_session
def get_sms_otp_code(self):
@@ -251,7 +251,7 @@ class MyPSACC:
try:
otp_code = self.otp.get_otp_code()
except ConfigException:
self.load_otp(new=True)
self.load_otp(force_new=True)
otp_code = self.otp.get_otp_code()
save_otp(self.otp)
return otp_code
@@ -273,7 +273,7 @@ class MyPSACC:
self.manager._refresh_token()
if self.remote_refresh_token is None:
logger.error("remote_refresh_token isn't defined")
self.load_otp(new=True)
self.load_otp(force_new=True)
res = self.manager.post(remote_url + self.client_id,
json={"grant_type": "refresh_token", "refresh_token": self.remote_refresh_token},
headers=self.headers)
+7 -4
View File
@@ -69,7 +69,7 @@ class Otp:
iw_host = "https://otp.mpsa.com"
proxies = None
def __init__(self, inwebo_access_id):
def __init__(self, inwebo_access_id, device_id=token_hex(8)):
self.Kiw = None
self.pinmode = None
self.Kfact = None
@@ -78,7 +78,7 @@ class Otp:
self.serviceid = None
self.alias = None
self.iwalea = token_hex(16)
self.device_id = token_hex(8)
self.device_id = device_id
self.codepin = None
self.challenge = ""
self.action = ""
@@ -309,8 +309,11 @@ def load_otp(filename="otp.bin"):
return None
def new_otp_session():
otp = Otp("bb8e981582b0f31353108fb020bead1c")
def new_otp_session(old_otp_session: Otp = None):
if old_otp_session is None:
otp = Otp("bb8e981582b0f31353108fb020bead1c")
else:
otp = Otp("bb8e981582b0f31353108fb020bead1c", device_id=old_otp_session.device_id)
otp.smsCode = input("What is the code you just received by SMS ?")
otp.codepin = input("What is your app pin code ?")
otp.activation_start()