def login(self, username, password, mfa_code=None): """Save and test login info for Robinhood accounts Args: username (str): username password (str): password Returns: (bool): received valid auth token """ self.username = username payload = { 'password': password, 'username': self.username, 'grant_type': 'password', 'client_id': self.client_id, 'device_token': self.device_token, 'expires_in': 86400, 'scope': 'internal' } if mfa_code: payload['mfa_code'] = mfa_code try: res = self.session.post(endpoints.login(), data=payload, timeout=15) res.raise_for_status() data = res.json() except requests.exceptions.HTTPError: raise RH_exception.LoginFailed() if 'mfa_required' in data.keys(): # pragma: no cover mfa_code = input("MFA: ") return self.login(username, password, mfa_code) if 'access_token' in data.keys() and 'refresh_token' in data.keys(): self.auth_token = data['access_token'] self.refresh_token = data['refresh_token'] self.headers['Authorization'] = 'Bearer ' + self.auth_token return True return False
def login(self, username, password, mfa_code=None): """Save and test login info for Robinhood accounts Args: username (str): username password (str): password Returns: (bool): received valid auth token """ self.username = username self.password = password payload = { 'password': self.password, 'username': self.username, 'grant_type': 'password', 'client_id': self.client_id } if mfa_code: payload['mfa_code'] = mfa_code try: res = self.session.post(endpoints.login(), data=payload, timeout=15) res.raise_for_status() data = res.json() except requests.exceptions.HTTPError: raise RH_exception.LoginFailed() if 'mfa_required' in data.keys(): # pragma: no cover raise RH_exception.TwoFactorRequired( ) # requires a second call to enable 2FA if 'access_token' in data.keys() and 'refresh_token' in data.keys(): self.auth_token = data['access_token'] self.refresh_token = data['refresh_token'] self.headers['Authorization'] = 'Bearer ' + self.auth_token return True return False
def login(): print 'endpoints.login' return endpoints.login()