Переход с OpenID 2.0 на OpenID Connect: нельзя использовать openid_id для выбора пользователей appengine.

Использование Appengine/Java

Я переношу OpenID 2.0 на OpenID Connect (OAuth 2.0 для входа), как описано здесь: https://developers.google.com/accounts/docs/OpenID?hl=ja

Я перехожу к шагу 3: сопоставьте (существующие) идентификаторы OpenID 2.0 с (новыми) идентификаторами OpenID Connect.

В нем говорится: «В вашей пользовательской базе данных свяжите openid_id с новым идентификатором подписки». Проблема в том, что я не могу выбрать своих существующих пользователей с помощью openid_id, так как в моей существующей пользовательской таблице используется com.google.appengine.api.users.User.getUserId() в качестве значения для идентификации пользователя.

(Я также сохранил полный объект com.google.appengine.api.users.User)

Любая идея, как я могу использовать openid_id для выбора пользователей appengine?


person peternees    schedule 18.01.2015    source источник
comment
Последующий вопрос: соответствует ли идентификатор пользователя, возвращаемый функцией getUserId(), подполю токена идентификатора, возвращаемого в потоке миграции? (см. openid.net/specs/openid-connect-core-1_0. html#IDToken). Предположительно нет, иначе вы могли бы выполнить сопоставление на шаге 3 на основе идентификаторов пользователей вместо openid_id, верно?   -  person Miguel Andres    schedule 23.01.2015
comment
На самом деле нет, sub отличается от getUserId(). я проверял это   -  person peternees    schedule 24.01.2015


Ответы (1)


com.google.appengine.api.users.User.getFederatedIdentity() возвращает openid_id (https://www.google.com/accounts/o8/id?id=xxxxxxxxxxxxxx). Поскольку я не могу выбрать это, чтобы идентифицировать пользователя, я буду использовать ближайшие месяцы, чтобы заполнить это в своей БД, чтобы я мог использовать это для выбора подходящего пользователя.

person peternees    schedule 19.01.2015