2010-04-28 4 views
1

После этого Tuto:Реализация OpenID

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

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

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

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

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

+0

Настоящий id (тот, который был указан Dav) будет доступен в переменной 'openid.claimed_id' ответа openid. Подробнее читайте http://code.google.com/apis/accounts/docs/OpenID.html#Samples. – Amarghosh

+0

Значит, id не для прямого входа, а для получения информации? – openid

ответ

1

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

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

+0

Но туту, которую я опубликовал, кажется, говорит, что OpenID можно получить до перенаправления на gmail? – openid

+0

Страница недоступна; но, как я уже сказал, в случае других поставщиков, таких как myopenid и т. д., вы можете получить уникальный идентификатор перед перенаправлением: но как вы можете подтвердить, что пользователь не лжет - вы можете подтвердить личность только на основе ответа от openid провайдера, будь то google или myopenid. – Amarghosh

+0

Это именно то, что я думаю! – openid

3

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

С далее вниз на странице вы связаны:

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

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

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

+0

Сохраняется ли это: 'xxxxx' =' user @ gmail.com'? – openid

+0

Нет. Он содержит строку хеша, которая не соответствует какой-либо конкретной пользовательской информации, единственная гарантия заключается в том, что один и тот же пользователь будет иметь одну и ту же строку хэша. – Amber

+0

Кроме того, вы можете ознакомиться с собственной документацией Google: http://code.google.com/apis/accounts/docs/OpenID.html - соответствующая цитата: «Идентификатор, предоставленный Google, который не имеет отношения к пользовательскому фактическое имя или пароль учетной записи Google, добавляется как параметр запроса openid.claimed_id. " – Amber

1

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

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

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

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