From 5417064a0497990f26d2ec1300e36920c43d837d Mon Sep 17 00:00:00 2001 From: Pablo Date: Fri, 31 Jul 2020 17:20:22 +0200 Subject: [PATCH] allow log in with 2fa --- degiroapi/__init__.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/degiroapi/__init__.py b/degiroapi/__init__.py index c26e1a1..5262ea3 100644 --- a/degiroapi/__init__.py +++ b/degiroapi/__init__.py @@ -7,6 +7,7 @@ class DeGiro: __LOGIN_URL = 'https://trader.degiro.nl/login/secure/login' + __LOGIN_TOTP_URL = 'https://trader.degiro.nl/login/secure/login/totp' __CONFIG_URL = 'https://trader.degiro.nl/login/secure/config' __LOGOUT_URL = 'https://trader.degiro.nl/trading/secure/logout' @@ -34,15 +35,20 @@ class DeGiro: client_info = any confirmation_id = any - def login(self, username, password): + def login(self, username, password, totp=None): login_payload = { 'username': username, 'password': password, 'isPassCodeReset': False, 'isRedirectToMobile': False } - login_response = self.__request(DeGiro.__LOGIN_URL, None, login_payload, request_type=DeGiro.__POST_REQUEST, - error_message='Could not login.') + if totp is not None: + login_payload["oneTimePassword"] = totp + login_response = self.__request(DeGiro.__LOGIN_TOTP_URL, None, login_payload, request_type=DeGiro.__POST_REQUEST, + error_message='Could not login.') + else: + login_response = self.__request(DeGiro.__LOGIN_URL, None, login_payload, request_type=DeGiro.__POST_REQUEST, + error_message='Could not login.') self.session_id = login_response['sessionId'] client_info_payload = {'sessionId': self.session_id} client_info_response = self.__request(DeGiro.__CLIENT_INFO_URL, None, client_info_payload,