コード例 #1
0
    def test_get_discovery_doc_invalid_input(self):
        discovery_doc = get_discovery_doc('random')

        assert discovery_doc[
            'issuer'] == 'https://oauth.platform.intuit.com/op/v1'
        assert discovery_doc[
            'userinfo_endpoint'] == 'https://sandbox-accounts.platform.intuit.com/v1/openid_connect/userinfo'
コード例 #2
0
    def test_get_discovery_doc_production(self):
        discovery_doc = get_discovery_doc('production')

        assert discovery_doc[
            'issuer'] == 'https://oauth.platform.intuit.com/op/v1'
        assert discovery_doc[
            'userinfo_endpoint'] == 'https://accounts.platform.intuit.com/v1/openid_connect/userinfo'
コード例 #3
0
    def __init__(self,
                 client_id,
                 client_secret,
                 redirect_uri,
                 environment,
                 state_token=None,
                 access_token=None,
                 refresh_token=None,
                 id_token=None,
                 realm_id=None):
        """Constructor for AuthClient
        
        :param client_id: Client ID found in developer account Keys tab
        :param client_secret: Client Secret found in developer account Keys tab
        :param redirect_uri: Redirect URI, handles callback from provider
        :param environment: App Environment, accepted values: 'sandbox','production','prod'
        :param state_token: CSRF token, generated if not provided, defaults to None
        :param access_token: Access Token for refresh or revoke functionality, defaults to None
        :param refresh_token: Refresh Token for refresh or revoke functionality, defaults to None
        :param id_token: ID Token for OpenID flow, defaults to None
        :param realm_id: QBO Realm/Company ID, defaults to None
        """

        super(AuthClient, self).__init__()

        self.client_id = client_id
        self.client_secret = client_secret
        self.redirect_uri = redirect_uri
        self.environment = environment
        self.state_token = state_token

        # Discovery doc contains endpoints based on environment specified
        discovery_doc = get_discovery_doc(self.environment, session=self)
        self.auth_endpoint = discovery_doc['authorization_endpoint']
        self.token_endpoint = discovery_doc['token_endpoint']
        self.revoke_endpoint = discovery_doc['revocation_endpoint']
        self.issuer_uri = discovery_doc['issuer']
        self.jwks_uri = discovery_doc['jwks_uri']
        self.user_info_url = discovery_doc['userinfo_endpoint']

        # response values
        self.realm_id = realm_id
        self.access_token = access_token
        self.expires_in = None
        self.refresh_token = refresh_token
        self.x_refresh_token_expires_in = None
        self.id_token = id_token
コード例 #4
0
    def test_get_discovery_doc_bad_response(self, mock_get):
        mock_resp = self.mock_request(status=400)
        mock_get.return_value = mock_resp

        with pytest.raises(AuthClientError):
            get_discovery_doc('sandbox')
コード例 #5
0
 def test_get_discovery_doc_custom_url_input(self):
     discovery_doc = get_discovery_doc('https://developer.intuit.com/.well-known/openid_sandbox_configuration/')
     
     assert discovery_doc['issuer'] =='https://oauth.platform.intuit.com/op/v1'
     assert discovery_doc['userinfo_endpoint'] == 'https://sandbox-accounts.platform.intuit.com/v1/openid_connect/userinfo'