Настройка входа в Google App Engine

Мне нужно добавить еще несколько параметров для входа в систему, и поэтому мне нужно настроить create_login_url с помощью некоторого HTML-кода.

Есть ли способ добавить свой код на экран входа в Google по умолчанию?

Среда: Python (Google App Engine)

Я хочу сохранить стандартное поведение пользователей класса Google ext class.


person dhaval    schedule 15.06.2009    source источник
comment
Невозможно повлиять на саму страницу входа в Google, кроме как указать адрес, на который пользователь будет перенаправлен после входа в систему. Чего вы хотите достичь? Вам будет легче помочь, если вы опишите, что именно вы хотите сделать.   -  person Blixt    schedule 15.06.2009
comment
Я хочу создать логин из нескольких доменов, включая Google, используя что-то вроде rpxnow, но я не хочу нарушать существующий код учетных данных с помощью модуля Google Users.   -  person dhaval    schedule 15.06.2009


Ответы (3)


Вы не можете настроить страницу входа. Разрешение вам сделать это приведет к возможности XSS-уязвимостей, а также затруднит пользователям идентификацию законной страницы входа.

Если вы хотите обеспечить федеративный вход в систему, вы можете просто перенаправить пользователей на промежуточную страницу, которая позволяет им выбрать стандартный вход в Google или один из ряда других сервисов.

person Nick Johnson    schedule 15.06.2009
comment
Могу ли я использовать модуль «Пользователи» для другого домена, например, для твиттера или фейсбука? - person dhaval; 15.06.2009

Ник Джонсон недавно выпустил альфа-версию промежуточное ПО WSGI, которое вы могли бы использовать. API очень похож на стандартный Users API в движке приложения. Это способ поддержки аутентификации через OpenID (это предложил Алекс Мартелли в своем ответ). Поэтому вы можете поддерживать Google как поставщика удостоверений, а также других. Если по какой-то причине вы хотите поддерживать только учетные записи Google, вы, безусловно, можете внести их только в белый список.

Блог Ника объявление также перечисляет некоторые вещи, которые следует учитывать (это может быть для вас решающим фактором):

  • Пользователи однозначно идентифицируются по их конечной точке OpenID.
  • Вы не можете создать объект User без указания URL-адреса OpenID.
  • Псевдонимы и адреса электронной почты предоставляются пользователями, поэтому их уникальность и достоверность не гарантируются.
  • is_current_user_admin() еще не реализован.
  • login: предложения в app.yaml не затрагиваются AEoid — они по-прежнему аутентифицируются с использованием обычного Users API.
person tosh    schedule 23.12.2009

Для этой цели вы можете использовать OpenID через любой из различных проектов движка приложений с открытым исходным кодом, например это для Django.

Вы не можете использовать существующий модуль Users с ними (за исключением, возможно, серьезного взлома, но я не пробовал такие подвиги и не обязательно их рекомендую ;-), но различные рассматриваемые проекты, как правило, предлагают полезные замены.

Создание ваших собственных страниц входа также не слишком сложно с этими подходами, конечно, поскольку вы начинаете со всеми источниками для «потребителя OpenID», который вы решили использовать.

Я не знаю, все ли домены, которые вы хотите поддерживать, являются провайдерами OpenID (хотя я не понимаю, почему любой сайт, поддерживающий собственные пользовательские логины, не также является провайдером OpenID — это просто и делает более ценным для пользователей логин на этом сайте!-), но я надеюсь, что это продвинет вас на пути к вашей цели!

person Alex Martelli    schedule 18.06.2009