2017-02-02 2 views
3

Мне говорят, что атрибут Эмитента не найден на объекте конечных точек. Согласно Google он должен быть там: Authenticating Users (Frameworks)Атрибут «Конечные точки» Эмитент не найден.

import endpoints 

firebase_issuer = endpoints.Issuer(
    issuer='https://securetoken.google.com/YOUR-PROJECT-ID', 
    jwks_uri='https://www.googleapis.com/service_accounts/v1/metadata/x509/[email protected]') 

@endpoints.api(
    name='echo', 
    version='v1', 
    issuers=[firebase_issuer]) 

Это в моем бэкэнде API, который я хочу, чтобы firebase аутентификации.

Я использую Eclipse библиотеку движков Google PyDev для написания этого бэкэнда. Я вижу сообщение об ошибке:

Undefined variable from import: Issuer

или

firebase_issuer = endpoints.Issuer( AttributeError: 'module' object has no attribute 'Issuer'

, когда я бегу он

+1

Хорошо исправлено, моя ошибка. Надеюсь, это более полно. –

+0

благодарит за исправления для форматирования :) –

ответ

1

Я имел эту проблему. В основном, мой интерпретатор ссылался на файлы gcloud SDK, которые имеют только конечные точки-1.0. В быстром запуске вы устанавливаете конечные точки-2.0 в каталог lib, который загружается с развертыванием, но скрипт appengine_config.py, который включает его, не срабатывает до развертывания (я думаю). И.Е. он не определен локально.

Чтобы исправить, я только что установил конечные точки-2.0, запустив pip install -r requirements.txt, что указывает на ваш локальный интерпретатор (мой, по-видимому, виртуальный). Предполагается, что вы используете require.txt из репо в quickstart: google-endpoints==2.0.4.

Это было проще всего для меня, но я считаю, что есть способ указать virtualenv в каталоге lib, который вы создаете и настраиваете для быстрого запуска. Таким образом, ваш локальный интерпретатор будет работать с тем же списком пакетов, что и GAE.

Смежные вопросы