Enhanced flow

Enhanced flow if two-steps verification is enabled
This commit is contained in:
SmartManoj 2019-07-21 12:54:22 +05:30 committed by GitHub
parent 48d6f15850
commit 11032cddd1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -317,14 +317,17 @@ class AuthMethods:
if phone and not code and not password: if phone and not code and not password:
return await self.send_code_request(phone) return await self.send_code_request(phone)
elif code: elif code :
phone, phone_code_hash = \ phone, phone_code_hash = \
self._parse_phone_and_hash(phone, phone_code_hash) self._parse_phone_and_hash(phone, phone_code_hash)
# May raise PhoneCodeEmptyError, PhoneCodeExpiredError, # May raise PhoneCodeEmptyError, PhoneCodeExpiredError,
# PhoneCodeHashEmptyError or PhoneCodeInvalidError. # PhoneCodeHashEmptyError or PhoneCodeInvalidError.
try:
result = await self(functions.auth.SignInRequest( result = await self(functions.auth.SignInRequest(
phone, phone_code_hash, str(code))) phone, phone_code_hash, str(code)))
except errors.RPCError:
return self.sign_in(password=password)
elif password: elif password:
pwd = await self(functions.account.GetPasswordRequest()) pwd = await self(functions.account.GetPasswordRequest())
result = await self(functions.auth.CheckPasswordRequest( result = await self(functions.auth.CheckPasswordRequest(
@ -338,7 +341,7 @@ class AuthMethods:
else: else:
raise ValueError( raise ValueError(
'You must provide a phone and a code the first time, ' 'You must provide a phone and a code the first time, '
'and a password only if an RPCError was raised before.' 'and a password if two-steps verification is enabled '
) )
return self._on_login(result.user) return self._on_login(result.user)