Downloads
Stars
Version
Пакет позволяет реализовать аутентификацию при помощи ботов в соц. сетях. Основная задача упростить аутентификацию для пользователей, которые используют мобильные устройства для входа на сайт через соц. сеть.
Ссылки вида:
откроют мобильное приложение для начала диалога с ботом. Посетителю не придется повторно вводить логин и пароль в браузере.
Возможно подключить ботов:
Demo https://laravel.zetrider.ru/
composer require zetrider/botauth
Подключить пакет в config/app.php
ZetRider\BotAuth\BotAuthServiceProvider::class,
'BotAuth' => ZetRider\BotAuth\Facades\BotAuth::class,
Скопировать конфиг. файл
php artisan vendor:publish --tag=botauth-config
при необходимости
php artisan vendor:publish --tag=botauth-views
php artisan vendor:publish --tag=botauth-migrations
Указать для нужных соц. сетей ссылку в параметре link.
Заполнить ENV файл ключами ботов
BOTAUTH_VKONTAKTE_API_SECRET
BOTAUTH_VKONTAKTE_API_TOKEN
BOTAUTH_VKONTAKTE_API_CONFIRM
BOTAUTH_TELEGRAM_API_TOKEN
BOTAUTH_TELEGRAM_PROXY
BOTAUTH_FACEBOOK_API_SECRET
BOTAUTH_FACEBOOK_API_TOKEN
BOTAUTH_FACEBOOK_API_CONFIRM
Запустить миграции
php artisan migrate
В Middleware VerifyCsrfToken добавить исключение адреса для callback, по умолчанию botauth/callback/*'
protected $except = [
'botauth/callback/*' // Except callback Csrf middleware
];
use ZetRider\BotAuth\Traits\BotAuthUserTrait;
который добавит отношение с логинами пользователя из соц. сетейBOTAUTH_VKONTAKTE_API_TOKEN
BOTAUTH_VKONTAKTE_API_CONFIRM
BOTAUTH_VKONTAKTE_API_SECRET
Бот готов к работе.
Пример прямой ссылки на диалог с ботом https://vk.me/zetcode
BOTAUTH_TELEGRAM_API_TOKEN
https://api.telegram.org/botYOUR_TOKEN/setWebhook?url=https://DOMAIN/botauth/callback/telegram
где YOUR_TOKEN ваш токен.BOTAUTH_TELEGRAM_PROXY
, например socks5h://127.0.0.1:1080Бот готов к работе.
Пример прямой ссылки на диалог с ботом https://t.me/BotAuthBot
BOTAUTH_FACEBOOK_API_SECRET
Пример прямой ссылки на диалог с ботом https://m.me/zetridercode
Создайте свой класс, который наследует абстрактный класс ZetRider\BotAuth\AbstractProvider
Пример example/ExampleProvider.php
Добавьте в сервис провайдер, например AppServiceProvider в методе boot
// Register example proider
BotAuth::extend('example', function() {
return new \Path\To\Your\Class\ExampleProvider();
});
Провайдер будет обрабатывать запросы в callback по адресу /botauth/callback/example
Событие при успешной обработке нового сообщения от бота
// Catch bot callback
\Event::listen(\ZetRider\BotAuth\Events\MessageNewEvent::class, function($event)
{
$provider = $event->provider; // ZetRider\BotAuth\AbstractProvider
$slug = $provider->getProviderSlug();
$data = $provider->getCallbackResponse();
$user = $provider->getUser();
$text = $provider->getText();
// You can send a message
// $provider->sendMessage(__('Back to web site'));
});