#lightopenid
#lightopenid
Вопрос:
Я использую lightopenid для аутентификации в gmail.
Найдено здесь:
По умолчанию страница входа в gmail отображается в полностраничной версии. Но я заметил, что на других веб-сайтах отображается «всплывающая версия», а в URL-адресе
amp;ltmpl=popup
Я просмотрел код и не вижу способа добавить некоторые пользовательские параметры в строку URL-адреса авторизации.
Кому-нибудь удалось это сделать?
try
{
$lightopenid = new Lightopenid;
$lightopenid->required = $required_attr;
if(!isset($_GET['openid_mode']))
{
$ui = "amp;openid.ns.ui=" . urlencode('=http://specs.openid.net/extensions/ui/1.0') . "amp;openid.ui.mode=popup";
$lightopenid->identity = 'https://www.google.com/accounts/o8/id';
redirect($lightopenid->authUrl() . $ui, 'refresh');
}
Спасибо
Ответ №1:
Поскольку $openid->authUrl()
возвращает URL-адрес, добавить к нему опцию не так уж сложно.
Насколько я знаю, это правильный способ сделать это:
$ui = "amp;openid.ns.ui=" . urlencode('http://specs.openid.net/extensions/ui/1.0') . "amp;openid.ui.mode=popup"
header('Location: ' . $openid->authUrl() . $ui);
Комментарии:
1. Я смотрю на функции authUrl_v1 и authUrl_v2. Я не вижу, куда поместить указанный вами код. Не могли бы вы дать мне более подробный код. Спасибо
2. Вы ищете не в том месте. Посмотрите на example.php , где используется authUrl(). Если вы уже используете LightOpenID, у вас также есть строка like
header('Location: ' . $openid->authUrl());
, и вы должны изменить эту строку в соответствии с кодом, который я опубликовал выше.3. нет, все еще не работает. Я обновил свой вопрос, чтобы показать вам, что я делаю.
4. Хорошо, я допустил опечатку, которую пропустил ранее. Попробуйте удалить ‘=’ в urlencode(), чтобы он кодировал только URL. Обновил мой ответ, чтобы отразить это.
5. @Mewp привет, фри … это не открывается в новом окне …. его открытие в том же окне …. направьте меня