uLogin - виджет авторизации через социальные сети « все идеи проекта

0

голосов

Добавить параметр real_identity, в котором бы содержалась информация о том, какой openid посетитель указал при вводе, а не тот, на который в его сайте прописано делегирование.

Добавить параметр real_identity, в котором бы содержалась информация о том, какой openid посетитель указал при вводе, а не тот, на который в его сайте прописано делегирование.

Например, я пытаюсь залогиниться по Openid своим сайтом lleo.me, где настроено делегирование через сервер myopenid.com. В результате в identity получается myopenid.com.

PS: Ну и чтобы два раза не вставать: есть ли способ не открывать новое окно в браузере, а проводить все операции в текущем? У меня все равно это будет открываться в оболочке iframe по хитрой системе, я бы предпочел, чтобы всё перемещения происходили там внутри. Прошу прощения, если это указано в документации, а я не нашел.

С уважением, Леонид Каганов, http://lleo.me
mail: lleo@aha.ru

Леонид Каганов, 09.11.2011, 17:58
Статус идеи: выполнено

Комментарии

Антон Лобовкин, 09.11.2011, 18:25
Параметр добавил, но не рекоменловал бы основываться только на нём, т.к., например, для OpenID Яндекса можно использовать общий для всех http://openid.yandex.ru, т.е. real_identity не будет уникальным для разных пользователей.
Владимир Палант, 10.11.2011, 18:07
Антон, проблема на самом деле совсем не в этом - Леонид просто не знает OpenID. Проблема в указании OpenID-сервера на своей странице как указано на http://openid.net/specs/openid-authentication-2_0.html#anchor50. Если на странице http://example.com/ прописан openid2.local_id или openid.delegate http://myopenid.com/foobar, то сервер должен проверять идентификатор http://myopenid.com/foobar. Но идентификатором пользователя тем не менее является http://example.com/ и именно этот идентификатор uLogin должен вернуть после проверки. А он сейчас судя по описанию Леонида возвращает http://myopenid.com/foobar.

Владимир Палант
Леонид Каганов, 10.11.2011, 17:34
Антон, спасибо большое за столь оперативную реакцию!

Я сделал проверку, существует ли real_identity и совпадают ли они с identity - если совпадают, то тупо беру тот из них, что длиннее, если не совпадают - беру real:

if(!empty($j['real_identity'])) { $a=strlen($j['real_identity']); $b=strlen($j['identity']);
if(substr($j['real_identity'],0,min($a,$b))!=substr($j['identity'],0,min($a,$b)))
$openid=$j['real_identity']; else $openid=($a>$b?$j['real_identity']:$j['identity']);
} else $openid=$j['identity'];
Леонид Каганов, 10.11.2011, 18:15
Антон, могу лишь добавить, что я действительно ни хрена не смыслю в ОпенИД, а Владимир, напротив, смыслит настолько, что нашел дыру в Логинзе, через которую можно залогиниться от любого сайта и любого имени.
Леонид Каганов, 10.11.2011, 18:18
А вот почему здесь кнопка "Комментировать" не срабатывает, если пишешь комментарий не в корневой ветке - это загадка сайта.

URL: http://ulogin.reformal.ru/proj/?mod=one&ia=221127#comment_form
В консоль ошибок JS ничего не сыпется.
По линку "ответить" открывается поле, но Кнопка не нажимается. А вот внизу корня - работает.

Оставить комментарий