PHPackages                             zetrider/botauth - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. zetrider/botauth

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

zetrider/botauth
================

authentication by bot

29162[1 PRs](https://github.com/zetrider/BotAuth/pulls)PHP

Since Jun 27Pushed 6y ago1 watchersCompare

[ Source](https://github.com/zetrider/BotAuth)[ Packagist](https://packagist.org/packages/zetrider/botauth)[ RSS](/packages/zetrider-botauth/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependenciesVersions (1)Used By (0)

BotAuth - вход и регистрация при помощи ботов
=============================================

[](#botauth---вход-и-регистрация-при-помощи-ботов)

Пакет позволяет реализовать аутентификацию при помощи ботов в соц. сетях. Основная задача упростить аутентификацию для пользователей, которые используют мобильные устройства для входа на сайт через соц. сеть.

Ссылки вида:

- ...
- ...
- ...

откроют мобильное приложение для начала диалога с ботом. Посетителю не придется повторно вводить логин и пароль в браузере.

Возможно подключить ботов:

- Вконтакте
- Telegram
- FaceBook
- Ваш собственный провайдер (пример ниже)

[Demo https://laravel.zetrider.ru/](https://laravel.zetrider.ru/)

---

Установка:
----------

[](#установка)

1. composer require zetrider/botauth
2. Подключить пакет в config/app.php

    - Провайдер `ZetRider\BotAuth\BotAuthServiceProvider::class,`
    - Фасад (Алиас)

    `'BotAuth' => ZetRider\BotAuth\Facades\BotAuth::class,`
3. Скопировать конфиг. файл

    `php artisan vendor:publish --tag=botauth-config`

    при необходимости

    `php artisan vendor:publish --tag=botauth-views`

    `php artisan vendor:publish --tag=botauth-migrations`
4. Указать для нужных соц. сетей ссылку в параметре link.

    - ...
    - ...
    - ...
5. Заполнить 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`
6. Запустить миграции `php artisan migrate`
7. В Middleware VerifyCsrfToken добавить исключение адреса для callback, по умолчанию botauth/callback/\*'

```
protected $except = [
    'botauth/callback/*' // Except callback Csrf middleware
];

```

8. Для вашей модели User добавьте трейт: `use ZetRider\BotAuth\Traits\BotAuthUserTrait;`который добавит отношение с логинами пользователя из соц. сетей

Подключение ботов:
------------------

[](#подключение-ботов)

### Вконтакте

[](#вконтакте)

1. Откройте настройки своего сообщества или создайте новое [https://vk.com/groups?w=groups\_create](https://vk.com/groups?w=groups_create)
2. В настройках сообщества откройте райздел "Настройки" - "Работа с API"
3. Создайте ключ доступа, выберите пункт "Разрешить приложению доступ к сообщениям сообщества", запишите ключ, его нужно указать в .env `BOTAUTH_VKONTAKTE_API_TOKEN`
4. На той же странице выберите Callback API, выберите "Версия API" 5.95, укажите в поле "Адрес" callback адрес вашего сайта, пример по умолчанию
5. Ниже укажите строку, которую должен вернуть сервер в .env `BOTAUTH_VKONTAKTE_API_CONFIRM`
6. В поле "Секретный ключ" придумайте любой секретный ключ, укажите в .env `BOTAUTH_VKONTAKTE_API_SECRET`
7. После заполнения всех ключей в .env нажмите кнопку "Подтверидть"
8. На этой же странице откройте вкладку "Типы событий", нужно выбрать "Входящие сообщения"
9. Откройте настройки сообщества, пункт "Сообщения", включите "сообщения сообщества"
10. Откройте настройки сообщества, пункт "Сообщения" - "Настройки для бота", включите "Возможности ботов"

Бот готов к работе.

Пример прямой ссылки на диалог с ботом

### Telegram

[](#telegram)

1. Создайте своего бота через @BotFather
2. Запомните ключ, укажите в .env `BOTAUTH_TELEGRAM_API_TOKEN`
3. Добавьте веб хук через `https://api.telegram.org/botYOUR_TOKEN/setWebhook?url=https://DOMAIN/botauth/callback/telegram`где YOUR\_TOKEN ваш токен.
4. При необходимости укажите прокси в .env `BOTAUTH_TELEGRAM_PROXY`, например socks5h://127.0.0.1:1080

Бот готов к работе.

Пример прямой ссылки на диалог с ботом

### Facebook

[](#facebook)

1. У вас должна быть создана страница, если ее нет, добавьте [https://www.facebook.com/pages/creation/?ref\_type=universal\_creation\_hub](https://www.facebook.com/pages/creation/?ref_type=universal_creation_hub)
2. Добвьте новое приложение
3. В настройках приложение выберите "Основное", скопируйте "Секрет приложения" в .env `BOTAUTH_FACEBOOK_API_SECRET`
4. В настройках приложение нужно добавить продукт "Messenger"
5. В настройках продукта "Messenger" создайте токен доступа, укажите его в .env BOTAUTH\_FACEBOOK\_API\_TOKEN
6. В настройках продукта "Messenger" создайте веб хук, в URL обратного вызова укажите в поле "Подтвердите маркер" укажите произвольный текст, сохраните в .env BOTAUTH\_FACEBOOK\_API\_CONFIRM в опциях "Поля подписки" выберите "messages" нажмите "Подтвердить"
7. После подтверждения сервера в настройках веб хуков выберите страницу, нажмите "Подписаться" выбран нужную страницу
8. В окне "Проверка приложения Messenger" рядом с пунктом "pages\_messaging" нажмите "Добавить к заявке"
9. Бот уже готов к работе, но доступен только для администраторов. После подтверждения приложения, он станет доступен для всех посетителей. Отправьте приложение на модерацию.

Пример прямой ссылки на диалог с ботом

---

Важно:
------

[](#важно)

1. Сайт должен работать по https
2. Facebook бот возвращает PSID, который не соответствует публичному ID пользователя.
3. По умолчанию контроллер бота работает с моделью \\App\\User. Если у вас другой случай, просто создайте свой контроллер и модель на основе примеров из репозитория.

Как добавить свой провайдер:
----------------------------

[](#как-добавить-свой-провайдер)

Создайте свой класс, который наследует абстрактный класс `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'));
});
```

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/5e72b39a882893bbe05d9bb53ef88e2d6553d014cffc907777ff65283f5230f2?d=identicon)[ZetRider](/maintainers/ZetRider)

---

Top Contributors

[![zetrider](https://avatars.githubusercontent.com/u/5094201?v=4)](https://github.com/zetrider "zetrider (8 commits)")

### Embed Badge

![Health badge](/badges/zetrider-botauth/health.svg)

```
[![Health](https://phpackages.com/badges/zetrider-botauth/health.svg)](https://phpackages.com/packages/zetrider-botauth)
```

###  Alternatives

[namshi/jose

JSON Object Signing and Encryption library for PHP.

1.8k99.6M101](/packages/namshi-jose)[league/oauth1-client

OAuth 1.0 Client Library

99698.8M106](/packages/league-oauth1-client)[bezhansalleh/filament-shield

Filament support for `spatie/laravel-permission`.

2.8k2.9M88](/packages/bezhansalleh-filament-shield)[gesdinet/jwt-refresh-token-bundle

Implements a refresh token system over Json Web Tokens in Symfony

70516.4M35](/packages/gesdinet-jwt-refresh-token-bundle)[league/oauth2-google

Google OAuth 2.0 Client Provider for The PHP League OAuth2-Client

41721.2M118](/packages/league-oauth2-google)[illuminate/auth

The Illuminate Auth package.

9327.3M1.0k](/packages/illuminate-auth)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
