Реализация OpenID - PullRequest
       8

Реализация OpenID

1 голос
/ 28 апреля 2010

После этого туто:

http://www.plaxo.com/api/openid_recipe

Один из шагов:

Нужно посмотреть, есть ли OpenID введенный уже принадлежит существующему пользователь на вашем сайте

Моя проблема:

как выглядит OpenID для учетной записи gmail (у меня еще нет другой учетной записи OP)? Мне кажется, что OpenID = https://www.google.com/accounts/o8/id для gmail, но как я могу использовать это для поиска, поскольку он одинаков для всех пользователей?

Ответы [ 3 ]

3 голосов
/ 28 апреля 2010

На самом деле https://www.google.com/accounts/o8/id?id=XXXXXXXX для некоторой уникальной строки XXXXXXXX на конце, которая соответствует пользователю.

Далее на странице, на которую вы ссылаетесь:

Когда поставщик OpenID перенаправляет на Ваш обратный URL, они добавят куча дополнительной строки запроса параметры, которые содержат информация, необходимая для проверки аутентификация пользователя с этим OpenID. В зависимости от OpenID библиотека, которую вы используете, вам может понадобиться собрать их в структуру данных перейти к проверке функции, или он может сделать это для вас.

Одним из них является эта строка. Из документации Google OpenID:

предоставленный Google идентификатор, который не имеет отношения к пользователю фактическое имя учетной записи Google или пароль, добавляется как запрос параметр openid.claimed_id.

1 голос
/ 02 мая 2010

Ключевым отличием здесь является то, что https://www.google.com/accounts/o8/id не является идентификатором OpenID, не так, как в учебнике. Потому что, как вы заметили, это одинаково для всех пользователей. В терминологии спецификации это «Идентификатор OP», он определяет провайдера (Google), а не пользователя.

Эта практика (ввод идентификатора провайдера вместо пользователя) не была распространена в то время Был написан рецепт включения OpenID для вашего сайта . При использовании этого потока у вас не будет идентификатора пользователя, пока пользователь не будет перенаправлен обратно на ваш сайт от провайдера с ответом id_res.

Кроме того, Google теперь предлагает более четкие идентификаторы URL. Если вы настроили свой профиль Google, страница вашего профиля (<a href="http://www.google.com/profiles/" rel="nofollow noreferrer">http://www.google.com/profiles/</a><b>myProfileName</b>) также является OpenID. В отличие от идентификаторов /accounts/o8/id, он стабилен на всех сайтах, с которыми вы его используете, без какой-либо хитрой хеш-строки.

1 голос
/ 28 апреля 2010

https://www.google.com/accounts/o8/id - это то, что вы используете для входа в систему. При успешном входе в систему ответ от Google будет содержать длинный уникальный URL (с хешем) в переменной openid.claimed_id; это тот, который вы должны сохранить в своей базе данных и сравнить, чтобы узнать, новый ли это пользователь или уже существующий.

В других провайдерах openid, таких как myopenid, оба (логин и идентификатор_пользователя) одинаковы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...