В настоящее время в моде интеграция функции входа в систему через социальные сети на веб-сайте. Эта функция упрощает процесс входа в систему и регистрации. Если пользователь готов использовать свой социальный профиль на вашем веб-сайте, ему не нужно заполнять регистрационную форму, активируйте свою учетную запись.
Социальные сайты также не предоставляют личную информацию о пользователе сайту. Вместо этого они предоставляют только базовые данные, такие как имя, пол, социальный идентификатор (на конкретном социальном сайте), адрес электронной почты. Веб-приложение может запрашивать дополнительные сведения о пользователе. Но пользователь должен предоставить доступ к дополнительной информации. Это полностью зависит от того, предоставит ли пользователь доступ к дополнительной информации или нет. Некоторые социальные сайты, такие как Twitter, не предоставляют адрес электронной почты пользователя. Дело в том, что использовать профиль в социальной сети для взаимодействия с сайтом безопасно.
Для разработчика написать код для входа в социальную сеть непросто. Во-первых, им нужно прочитать документацию, предоставленную социальными сайтами, такими как Facebook, Twitter. Каждый социальный сайт имеет свою собственную библиотеку и собственный способ интеграции функции входа в социальные сети.
Например, вы хотите добавить социальный вход через Facebook и Twitter. В этом случае разработчику необходимо написать другой код для обоих социальных сайтов, как указано в их официальной документации.
Разработчику непросто разработать код, если у вас есть несколько социальных сетей, с которыми можно взаимодействовать.
Благодаря HybridAuth – социальному знаку с открытым исходным кодом в библиотеке PHP. Команда HybridAuth облегчает жизнь нашим разработчикам.
Используя эту библиотеку, нам не нужно читать документацию по социальным сайтам о том, как интегрировать социальный вход на сайт. Что нам всем нужно сделать, так это правильно установить и настроить библиотеку HybridAuth и зарегистрировать приложение в социальных сетях (что необходимо, даже если мы не используем библиотеку HybridAuth).
Монтаж
Для установки библиотеки HybridAuth рекомендуется использовать композитор. Если в вашей системе не установлен композитор, вы можете получить его на официальном веб-сайте.
Создайте файл composer.json в корневом каталоге вашего проекта и поместите в него приведенный ниже код.
{
"require": {
"hybridauth/hybridauth": "2.9.6"
}
}
Мы пропустили «2.9.6», потому что на момент написания этой статьи это последняя стабильная версия библиотеки HybridAuth.
Откройте терминал в корневом каталоге проекта и выполните команду composer install
. Он установит в вашу систему библиотеку HybridAuth версии 2.9.6.
Конфигурация
Убедитесь, что вы правильно настраиваете библиотеку. Если вам не удалось ее правильно настроить, вы не получите пользы от библиотеки и разочаруетесь.
Скопируйте 2 файла config.php и index.php из каталога vendorhybridauthhybridauthhybridauth и поместите в корневой каталог проекта. Переименуйте файл index.php в hybridauth.php, так как у нас может быть другой index.php в том же месте.
Откройте файл config.php и добавьте ключи и секрет приложения в соответствующий массив поставщиков.
Щелкните здесь, чтобы получить список всех социальных сетей, поддерживаемых HybridAuth. Мы также находим поставщиков и дополнительных поставщиков в самой установленной библиотеке. Чтобы увидеть поставщиков, перейдите к vendorhybridauthhybridauthhybridauthHybridProviders, а для дополнительных поставщиков проверьте каталог vendorhybridauthhybridauthadditional-providers.
Допустим, нам нужно указать детали приложения Facebook. Для этого в config.php для провайдера Facebook наш код выглядит следующим образом.
return array(
"base_url" => "YOUR_SITE_URL/hybridauth.php",
"providers" => array(
//other providers code
"Facebook" => array(
"enabled" => true,
"keys" => array("id" => "YOUR_APP_ID", "secret" => "YOUR_APP_SECRET"),
"trustForwarded" => false,
),
//other providers code
),
);
Убедитесь, что вы заменили заполнители YOUR_APP_ID и YOUR_APP_SECRET на фактические значения.
Мы также передали путь к файлу hybridauth.php для base_url.
Затем откройте файл hybridauth.php и внесите следующие изменения.
Заменять
require_once( "Hybrid/Auth.php" );
require_once( "Hybrid/Endpoint.php" );
Hybrid_Endpoint::process();
С участием
require 'vendor/autoload.php';
Hybrid_Endpoint::process();
На этом мы завершили установку и настройку библиотеки. Затем нам нужно написать код для входа в социальную сеть.
Допустим, нам нужно использовать социальный вход с Facebook, тогда наш код будет таким, как показано ниже. Мы предполагаем, что у вас есть файл sign-in.php в корневой папке, куда вам нужно написать код.
sign-in.php
require 'vendor/autoload.php';
try {
$hybridauth = new Hybrid_Auth( 'config.php' );
$adapter = $hybridauth->authenticate( "Facebook" ); //it can be Twitter, Google etc.
$user_profile = $adapter->getUserProfile();
} catch(Exception $e){
echo 'Oops, we ran into an issue! '. $e->getMessage();
}
Параметр, передаваемый методу Authenticate(), должен совпадать с ключом провайдера в файле config.php. Функция Authenticate () проверяет, аутентифицирован ли пользователь. Если пользователь не аутентифицирован, он перенаправляется на страницу входа в соответствующий социальный сайт. После успешной аутентификации пользователь снова перенаправляется на наш файл sign-in.php.
В следующей строке мы получаем данные аутентифицированного пользователя с помощью функции getUserProfile ().
Чтобы выйти из системы пользователя, подключенного к провайдеру, мы просто записываем приведенный ниже код в наш файл logout.php.
logout.php
require 'vendor/autoload.php';
Hybrid_Auth::logoutAllProviders();
Мы надеемся, что вы понимаете, как добавить скрипт входа в социальную сеть в PHP с помощью библиотеки HybridAuth. Если у вас есть вопросы или предложения, оставьте комментарий ниже. Вы также можете прочитать нашу статью Система входа в социальную сеть с использованием Laravel Socialite.