コード例 #1
0
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)
コード例 #2
0
ファイル: auth.py プロジェクト: CKiilu/rides
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)
コード例 #3
0
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
コード例 #4
0
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
コード例 #5
0
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
コード例 #6
0
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
コード例 #7
0
    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)
コード例 #8
0
ファイル: auth.py プロジェクト: CKiilu/rides
    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)
コード例 #9
0
    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)
コード例 #10
0
ファイル: auth.py プロジェクト: CKiilu/rides
    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)