2010-12-31 2 views
0

Я пытаюсь реализовать openId для своего сайта и использую библиотеку Janrain с php. Я хочу проверить, предоставлен ли openId пользователь, уже сохраненный в базе данных. Я хочу сравнить только нормализованные uri, чтобы избежать ситуации, когда пользователь иногда не вводит «http: // ...» и т. Д. Теперь у меня возникли проблемы с поиском конкретной функции, которая может нормализовать uri для меня сразу после пользователя входит в openId, поэтому, как только он попадает на мой сервер, прежде чем что-либо отправляется поставщику openId. Кстати, как вы можете себе представить, я устаю, пытаясь заставить все это работать, но все же желаю попробовать, поэтому любая помощь будет высоко оценена.Как получить нормализованный URL-адрес с открытой библиотекой Janrain?

ответ

0

(Предполагая, что вы имеете в виду библиотеку PHP5 с открытым кодом OpenLine Enabled, v 2.2.2 или около того.) В OpenID.php определено значение Auth_OpenID::normalizeUrl($url), однако оно отмечено как @access private. При инициализации транзакции авторизации вы получите нормализованный URL-адрес в результате процесса, но на самом деле это не то, что вы ищете. Вы можете игнорировать частный доступ, взломать библиотеку, чтобы сделать ее общедоступной, а затем просто сохранить свой патч при обновлении версий (если они когда-либо выпустят его). Кроме того, вы можете просто посмотреть, что они делают, и скопировать его в свою собственную функцию, избегая хакеров библиотеки и связанных с ней проблем управления версиями.

0

Если вы используете что-то вроде:

$url = str_replace(array("http://", "https://", "www."), "", $url); 

Это должно помочь вам получить один и тот же URL-адрес каждый раз.

+0

Хотя это, вероятно, даст согласованный URL-адрес, он не является строго «нормализованным» URL-адресом в смысле OpenID. Однако ваше предложение может быть достаточно хорошим для заявленной цели связывания идентификатора с записью учетной записи. – RobertB

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

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