Позвольте мне объяснить, как работает этот тип входа в FB.Конечно, есть альтернативный метод, используемый для настольных приложений, который сделал бы это возможным, но этот веб-сайт не использует его.
Итак, сделка:
Кнопка входа открывает ссылкуна серверах facebook, содержащих ключ API веб-сайта и некоторую произвольную информацию.Все идет нормально.Вы можете легко смоделировать это.
Затем, приняв секретные данные, вы будете перенаправлены обратно на сайт.Вы также можете смоделировать это.
Но тогда возникает бремя:
Место, куда вы перенаправляетесь, содержит токен facebook после хэштега (#).
Веб-сайтзатем можете прочитать этот токен с помощью Javascript и использовать его для запроса API-интерфейса Facebook, чтобы подтвердить вашу личность.
Причина, по которой это делается таким образом, проста:
Подумайте об этом.Каждый может подделать запрос от имени сайта и прочитать ваши личные данные.Но все, что находится после хэштега, никогда не будет читаться сервером, на который направлен запрос.Веб-браузер просто не передает его, и это будет нарушать стандарты http и вызывать ошибку.
Единственный способ получить к нему доступ - это JavaScript.И это может быть только на веб-сайте, обслуживающем запрос (куда перенаправляет Facebook).И домен, на который перенаправляет Facebook, заблокирован владельцем ключа приложения.
Вы видите, что javascript является важной частью безопасности здесь.
Я думаю, что это действительно небезопасно, потому что есть многовозможны объяснения, но это очень просто, что является причиной того, что эта форма входа в систему настолько распространена по сравнению, например, с openid.
Итак, подведем итог: вам нужно смоделировать полностью поддерживающий JavaScript браузер.Это отчасти возможно, но очень сложно, и для этого не существует готовых решений.