Пример #1
0
    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
Пример #2
0
    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
Пример #3
0
def login():
	print 'endpoints.login'
	return endpoints.login()
Пример #4
0
def login():
	print 'endpoints.login'
	return endpoints.login()