def refresh_access_token(credential): """Use a refresh token to request a new access token. Not suported for access tokens obtained via Implicit Grant. Parameters credential (OAuth2Credential) An authorized user's OAuth 2.0 credentials. Returns (Session) A new Session object with refreshed OAuth 2.0 credentials. Raises UberIllegalState (APIError) Raised if OAuth 2.0 grant type does not support refresh tokens. """ if credential.grant_type == auth.AUTHORIZATION_CODE_GRANT: response = _request_access_token( grant_type=auth.REFRESH_TOKEN, client_id=credential.client_id, client_secret=credential.client_secret, redirect_url=credential.redirect_url, refresh_token=credential.refresh_token, ) oauth2credential = OAuth2Credential.make_from_response( response=response, grant_type=credential.grant_type, client_id=credential.client_id, client_secret=credential.client_secret, redirect_url=credential.redirect_url, ) return Session(oauth2credential=oauth2credential) elif credential.grant_type == auth.CLIENT_CREDENTIAL_GRANT: response = _request_access_token( grant_type=auth.CLIENT_CREDENTIAL_GRANT, client_id=credential.client_id, client_secret=credential.client_secret, scopes=credential.scopes, ) oauth2credential = OAuth2Credential.make_from_response( response=response, grant_type=credential.grant_type, client_id=credential.client_id, client_secret=credential.client_secret, ) return Session(oauth2credential=oauth2credential) message = '{} Grant Type does not support Refresh Tokens.' message = message.format(credential.grant_type) raise UberIllegalState(message)
def refresh_access_token(credential): """Use a refresh token to request a new access token. Not suported for access tokens obtained via Implicit Grant. Parameters credential (OAuth2Credential) An authorized user's OAuth 2.0 credentials. Returns (Session) A new Session object with refreshed OAuth 2.0 credentials. Raises UberIllegalState (APIError) Raised if OAuth 2.0 grant type does not support refresh tokens. """ if credential.grant_type == auth.AUTHORIZATION_CODE_GRANT: response = _request_access_token( grant_type=auth.REFRESH_TOKEN, client_id=credential.client_id, client_secret=credential.client_secret, redirect_url=credential.redirect_url, refresh_token=credential.refresh_token, ) oauth2credential = OAuth2Credential.make_from_response( response=response, grant_type=credential.grant_type, client_id=credential.client_id, client_secret=credential.client_secret, redirect_url=credential.redirect_url, ) return Session(oauth2credential=oauth2credential) elif credential.grant_type == auth.CLIENT_CREDENTIAL_GRANT: response = _request_access_token( grant_type=auth.CLIENT_CREDENTIAL_GRANT, client_id=credential.client_id, client_secret=credential.client_secret, scopes=credential.scopes, ) oauth2credential = OAuth2Credential.make_from_response( response=response, grant_type=credential.grant_type, client_id=credential.client_id, client_secret=credential.client_secret, ) return Session(oauth2credential=oauth2credential) message = '{} Grant Type does not support Refresh Tokens.' message = message.format(credential.grant_type) raise UberIllegalState(message)
def test_make_session_from_client_credentials_response( client_credentials_response, ): """Test classmethod to build OAuth2Credential from HTTP Response.""" oauth2credential = OAuth2Credential.make_from_response( response=client_credentials_response, grant_type=auth.CLIENT_CREDENTIAL_GRANT, client_id=CLIENT_ID, client_secret=CLIENT_SECRET, ) assert oauth2credential.access_token == ACCESS_TOKEN assert oauth2credential.scopes == SCOPES_SET assert oauth2credential.grant_type == auth.CLIENT_CREDENTIAL_GRANT assert oauth2credential.refresh_token is None assert oauth2credential.client_id == CLIENT_ID assert oauth2credential.client_secret == CLIENT_SECRET assert oauth2credential.redirect_url is None
def test_make_session_from_authorization_code_response( authorization_code_response, ): """Test classmethod to build OAuth2Credential from HTTP Response.""" oauth2credential = OAuth2Credential.make_from_response( response=authorization_code_response, grant_type=auth.AUTHORIZATION_CODE_GRANT, client_id=CLIENT_ID, client_secret=CLIENT_SECRET, redirect_url=REDIRECT_URL, ) assert oauth2credential.access_token == ACCESS_TOKEN assert oauth2credential.scopes == SCOPES_SET assert oauth2credential.grant_type == auth.AUTHORIZATION_CODE_GRANT assert oauth2credential.refresh_token == REFRESH_TOKEN assert oauth2credential.client_id == CLIENT_ID assert oauth2credential.client_secret == CLIENT_SECRET assert oauth2credential.redirect_url == REDIRECT_URL
def test_make_session_from_client_credentials_response( client_credentials_response, ): """Test classmethod to build OAuth2Credential from HTTP Response.""" oauth2credential = OAuth2Credential.make_from_response( response=client_credentials_response, grant_type=auth.CLIENT_CREDENTIAL_GRANT, client_id=CLIENT_ID, client_secret=CLIENT_SECRET, ) assert oauth2credential.access_token == ACCESS_TOKEN assert oauth2credential.scopes == CLIENT_CREDENTIALS_SCOPES_SET assert oauth2credential.grant_type == auth.CLIENT_CREDENTIAL_GRANT assert oauth2credential.refresh_token is None assert oauth2credential.client_id == CLIENT_ID assert oauth2credential.client_secret == CLIENT_SECRET assert oauth2credential.redirect_url is None
def test_make_session_from_authorization_code_response( authorization_code_response, ): """Test classmethod to build OAuth2Credential from HTTP Response.""" oauth2credential = OAuth2Credential.make_from_response( response=authorization_code_response, grant_type=auth.AUTHORIZATION_CODE_GRANT, client_id=CLIENT_ID, client_secret=CLIENT_SECRET, redirect_url=REDIRECT_URL, ) assert oauth2credential.access_token == ACCESS_TOKEN assert oauth2credential.scopes == SCOPES_SET assert oauth2credential.grant_type == auth.AUTHORIZATION_CODE_GRANT assert oauth2credential.refresh_token == REFRESH_TOKEN assert oauth2credential.client_id == CLIENT_ID assert oauth2credential.client_secret == CLIENT_SECRET assert oauth2credential.redirect_url == REDIRECT_URL
def get_session(self): """Create Session to store credentials. Returns (Session) A Session object with OAuth 2.0 credentials. """ response = _request_access_token( grant_type=auth.CLIENT_CREDENTIAL_GRANT, client_id=self.client_id, client_secret=self.client_secret, scopes=self.scopes, ) oauth2credential = OAuth2Credential.make_from_response( response=response, grant_type=auth.CLIENT_CREDENTIAL_GRANT, client_id=self.client_id, client_secret=self.client_secret, ) return Session(oauth2credential=oauth2credential)
def get_session(self): """Create Session to store credentials. Returns (Session) A Session object with OAuth 2.0 credentials. """ response = _request_access_token( grant_type=auth.CLIENT_CREDENTIAL_GRANT, client_id=self.client_id, client_secret=self.client_secret, scopes=self.scopes, ) oauth2credential = OAuth2Credential.make_from_response( response=response, grant_type=auth.CLIENT_CREDENTIAL_GRANT, client_id=self.client_id, client_secret=self.client_secret, ) return Session(oauth2credential=oauth2credential)
def get_session(self, redirect_url): """Complete the Authorization Code Grant process. The redirect URL received after the user has authorized your application contains an authorization code. Use this authorization code to request an access token. Parameters redirect_url (str) The full URL that the Uber server redirected to after the user authorized your app. Returns (Session) A Session object with OAuth 2.0 credentials. """ query_params = self._extract_query(redirect_url) authorization_code = self._verify_query(query_params) response = _request_access_token( grant_type=auth.AUTHORIZATION_CODE_GRANT, client_id=self.client_id, client_secret=self.client_secret, code=authorization_code, redirect_url=self.redirect_url, ) oauth2credential = OAuth2Credential.make_from_response( response=response, grant_type=auth.AUTHORIZATION_CODE_GRANT, client_id=self.client_id, client_secret=self.client_secret, redirect_url=self.redirect_url, ) return Session(oauth2credential=oauth2credential)
def get_session(self, redirect_url): """Complete the Authorization Code Grant process. The redirect URL received after the user has authorized your application contains an authorization code. Use this authorization code to request an access token. Parameters redirect_url (str) The full URL that the Uber server redirected to after the user authorized your app. Returns (Session) A Session object with OAuth 2.0 credentials. """ query_params = self._extract_query(redirect_url) authorization_code = self._verify_query(query_params) response = _request_access_token( grant_type=auth.AUTHORIZATION_CODE_GRANT, client_id=self.client_id, client_secret=self.client_secret, code=authorization_code, redirect_url=self.redirect_url, ) oauth2credential = OAuth2Credential.make_from_response( response=response, grant_type=auth.AUTHORIZATION_CODE_GRANT, client_id=self.client_id, client_secret=self.client_secret, redirect_url=self.redirect_url, ) return Session(oauth2credential=oauth2credential)