2011-12-17 1 views
0

Я включил различные методы регистрации социальных сетей на свой сайт. Все они используют всплывающее окно для аутентификации.Аутентификация социальной сети через iframe вместо Pop Up

Возможно ли использовать iframe.

Каждый раз, когда я пытаюсь, процедура запускается, но не регистрирует пользователя. Он не может перенаправлять правильно.

EDITED -

Я сделал некоторые отладки, и я думаю, что проблема с яваскриптом функцией в PHP файл, который загружается.

В всплывающей версии это функция javascript.

Таким образом, с моей функцией iframe я создал это.

window.parent.document.getElementById('iframe').wsl_wordpress_social_login({ 
     'action' : 'wordpress_social_login', 
     'provider' : '<?php echo $provider ?>' 
    }); 

Firebug рассказывает мне это ::

window.parent.document.getElementById("iframe").wsl_wordpress_social_login is not a function 
[Break On This Error] 'provider' : 'Facebook' 

ответ

1

я понимаю, вы имеете в виду на «входе в систему с помощью Google» или «логин с facebook» кнопки, которые реализуют OAuth для вашего сайта?

Если да, то размещение результирующего окна в iframe позволит вам захватить пользовательский пароль google или fb по мере их ввода с помощью javascript. я точно не знаю, как это сделать, или даже если это было сделано, но я предполагаю, что хотя загруженная страница в iframe будет https, вы все равно сможете захватить ввод пользователя до того, как он будет зашифрован и отправлен на затем перенаправит его обратно на ваш собственный сервер. конечно, вы, вероятно, не заботитесь о пароле пользователя, но как пользователь знает об этом? по этой причине, хотя это может быть возможно, пользователи не должны доверять вашему веб-сайту, если он пытается подключиться к поставщику услуг с использованием iframe.

Я подумал о том, чтобы сделать то же самое, что и сделать более приятным вход в систему (никаких неприятных всплывающих окон и не перенаправлять на другие сайты, которые нарушают приятный непрерывный поток моего собственного сайта), однако я не продолжал из-за последствия для безопасности.

Кроме того, из того, что я видел, поставщики услуг (например, google и fb) делают все возможное, чтобы их окно входа в систему не было родительским окном (т.е. чтобы предотвратить то, что вы просите). вероятно, существует способ взломать код поставщика услуг, чтобы эти требования были обойдены, но если вы это сделаете, вы можете обнаружить, что ваш домен запретил совершать вызовы api поставщику услуг, код которого вы подделали.