1

Googleサービスアカウントを使用してGoogle Cloud Endpoints APIへのサービス間認証を実装しようとしていますが、次のエラーが発生します。 self.get_jwt_claims(auth_token)に渡されたauth_token変数のGAE標準のGoogle Cloud EndpointsからPythonライブラリの認証チェックを行う方法

Cannot decode and verify the auth token. The backend will not be able to retrieve user info (.../lib/endpoints_management/control/wsgi.py:596) 
Traceback (most recent call last): 
    File ".../lib/endpoints_management/control/wsgi.py", line 593, in __call__ 
    service_name) 
    File ".../lib/endpoints_management/auth/tokens.py", line 81, in authenticate 
    error) 
UnauthenticatedException: (u'Cannot decode the auth token', UnicodeDecodeError('ascii', '\xc9\xad\xbd', 0, 1, 'ordinal not in range(128)')) 

値は以下のとおりです。

ya29.ElmlBB1mwIfrsnURUIQg0Nv6v5UPzFR02miD4w_VywMSlWGDstpmmc5vPsmUqt5rCcho797B1HeEOgT0UBQiVfv9dlsfxSMLRf67SGwX0ceK5uTujj4_tSUXog 

は、エンドポイント・ライブラリはJWTとしてauth_token解読しようとしているように見えますが、auth_token JWTされていません。しかし、多分私は間違っています。 API Explorerを使用してAPIをテストしようとしているときにも同じ問題が発生します。これは、最新のエンドポイントでも、古いバージョンでも発生します。ここで

私のAPIクラスです:

@endpoints.api(
    name='myapi', 
    version='v1', 
    api_key_required=True, 
    auth_level=endpoints.AUTH_LEVEL.REQUIRED, 
    scopes=(
     endpoints.EMAIL_SCOPE, 
    ), 
) 
class MyApi(remote.Service): 
    ... 

そして、これは私がAPIにアクセスしてる方法です:

credentials = ServiceAccountCredentials.from_json_keyfile_dict(
    json.loads(json_keyfile_data), 
    scopes='https://www.googleapis.com/auth/userinfo.email', 
) 
service = build(
    name, version, 
    http=credentials.authorize(Http()), 
    discoveryServiceUrl=discovery_url) 
... 

私はから何かをやってやPythonエンドポイントライブラリにバグがありアム?

答えて

関連する問題