Lightopenid, авторизация в Gmail, показывать всплывающее окно вместо полностраничной формы

#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 привет, фри … это не открывается в новом окне …. его открытие в том же окне …. направьте меня