2010-01-11 1 views
1

Я пытаюсь реализовать OpenID-сервер в PHP, который поддерживает выбор идентификатора (некоторые называют этот направленный идентификатор, что на самом деле является более конкретным случаем выбора идентификатора). То есть пользователь может ввести общий URI в качестве идентификатора OpenID, войти в систему и выбрать, какой идентификатор должен вернуться к потребителю OpenID.OpenID Directed Identity/Identifier Selection в PHP

Например, если пользователь вводит mysite.com как их Indentifier, после того, как они войти они будут предложено вернуть один из двух идентификаторов для потребителя OpenID (возможно mysite.com/myusername или MySite .com/anon-ad83f38c98b98).

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

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

Любая помощь очень ценится.

ответ

1

Документация бесполезна. Вы посмотрели библиотеки Janrain? У них есть потребитель, который я успешно реализовал, а также код сервера, который, как я полагаю, можно реализовать. Посмотрите файлы Yadis \ XRIRes и Yadis \ XRI, вам, возможно, придется перепроектировать их код - вот что я должен был сделать, чтобы выяснить потребителя. В настоящее время я занимаюсь внедрением сервера, но пока не могу найти ничего полезного.

http://openidenabled.com/files/php-openid/docs/2.1.3/OpenID/Auth_Yadis_Yadis.html

+0

Я просмотрел библиотеки Janrain, но документация бесполезна, и я бы предпочел не перерабатывать код, если это вообще возможно. – inxilpro

+0

Не нужно будет копаться в коде Yadis для реализации сервера, если вам не интересно, какие константы URI типа пользователь ищет. – keturn

0

php-openid v2, безусловно, способны. И действительно, как вы взаимодействуете с библиотекой, меняется немного, когда вы добавляете выбор идентификатора. Когда вы получите свой Auth_OpenID_ChecKIDRequest, вы можете проверить его метод idSelect, чтобы узнать, подходит ли он для выбора идентификатора. Затем передайте выбранный идентификатор Auth_OpenID_ChecKIDRequest.answer().

Единственный другой бит - это убедиться, что вы рекламируете, что означают термины «Элемент идентификатора OP» на mysite.com/. Если вы уже используете страницы XRDS для своих идентификаторов пользователей, это работает так же, как и с другим URL-адресом типа. Если вы этого не сделали (у вас только есть обнаружение на основе HTML с элементами link), вы можете посмотреть HTTP-заголовки myopenid для примера.

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

  • Нет связанных вопросов^_^