Download the PHP package tigusigalpa/vtb-id-php without Composer
On this page you can find all versions of the php package tigusigalpa/vtb-id-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download tigusigalpa/vtb-id-php
More information about tigusigalpa/vtb-id-php
Files in tigusigalpa/vtb-id-php
Package vtb-id-php
Short Description VTB ID OAuth2 integration package for Laravel
License MIT
Informations about the package vtb-id-php
VTB ID PHP/Laravel Package
PHP/Laravel пакет для интеграции с VTB ID (OAuth2 авторизация через аккаунт в ВТБ Банке).
🌐 Язык: Русский | English
Содержание
- Требования
- Установка
- Быстрый старт
- Конфигурация
- Использование
- API Reference
- Примеры использования
- Безопасность
- Тестирование
Требования
- PHP 8.0 или выше
- Guzzle HTTP Client 7.x
- Laravel 8.x, 9.x, 10.x, 11.x или 12.x (опционально, для Laravel интеграции)
Установка
Через Composer (рекомендуется)
Публикация конфигурации
Локальная установка (для разработки)
Добавьте репозиторий в composer.json:
Затем установите:
Быстрый старт
Для Laravel
1. Установка (1 минута)
2. Конфигурация (2 минуты)
Добавьте в .env:
3. Создайте маршруты (2 минуты)
В routes/web.php:
4. Добавьте кнопку входа
В любом blade-шаблоне:
Для чистого PHP
1. Установка
2. Создайте файл конфигурации
3. Страница авторизации (login.php)
4. Обработка callback (callback.php)
5. Использование данных пользователя (dashboard.php)
Готово! 🎉
Теперь пользователи могут авторизоваться через VTB ID.
Конфигурация
Переменные окружения
Добавьте в .env:
Получение учетных данных VTB ID
- Зарегистрируйтесь на портале VTB ID для разработчиков
- Создайте новое приложение
- Укажите Redirect URI:
https://your-domain.com/auth/vtb/callback - Выберите необходимые scope
- Получите
client_idиclient_secret
Доступные Scope
Использование
Базовое использование с встроенными маршрутами
Пакет автоматически регистрирует следующие маршруты:
GET /auth/vtb/redirect- Перенаправление на страницу авторизации VTB IDGET /auth/vtb/callback- Обработка callback от VTB ID
Для начала авторизации просто перенаправьте пользователя на:
Использование VTBIDClient напрямую
Обновление токена
Отзыв токена
Helper функции
Данные пользователя
Объект VTBIDUser содержит следующие поля:
sub- Уникальный идентификатор пользователяname- Имяsurname- Фамилияpatronymic- Отчествоgender- Пол (male/female)birthdate- Дата рожденияmainMobilePhone- Основной мобильный телефонemail- EmailemailVerified- Email подтвержден (boolean)phoneNumberVerified- Телефон подтвержден (boolean)inn- ИННsnils- СНИЛС
Методы VTBIDUser
Интеграция с Laravel Auth
Обновление миграции пользователей
Обновление модели User
Пример контроллера
API Reference
VTBIDClient
Constructor
Параметры:
client_id(string) - ID приложения VTB IDclient_secret(string) - Секретный ключ приложенияredirect_uri(string) - URL для callbackbase_url(string, optional) - Базовый URL APIuser_data_url(string, optional) - URL для данных пользователяscope(string, optional) - Запрашиваемые разрешенияresponse_type(string, optional) - Тип ответа
getAuthorizationUrl()
Генерирует URL для перенаправления пользователя на страницу авторизации VTB ID.
generateState()
Генерирует случайную строку для параметра state (CSRF защита).
getAccessToken()
Обменивает код авторизации на access token.
Возвращает:
refreshAccessToken()
Обновляет access token используя refresh token.
getUserData()
Получает данные пользователя используя access token.
revokeToken()
Отзывает (аннулирует) токен.
Facade: VTBID
Middleware
VTBIDAuthenticated
Регистрация в app/Http/Kernel.php:
Использование:
Примеры использования
Использование с чистым PHP
Полный пример приложения
Структура проекта:
logout.php:
Обновление токена:
Интеграция с базой данных:
Кастомные маршруты (Laravel)
Отключите встроенные маршруты в .env:
Создайте свои маршруты:
Обработка ошибок
Глобальный обработчик в app/Exceptions/Handler.php:
Автоматическое обновление токена
Middleware для автоматического обновления:
Безопасность
Обязательные меры
- HTTPS обязателен - VTB ID не работает с HTTP
- Защита client_secret - никогда не коммитьте в Git
- Проверка state - защита от CSRF (уже реализована в пакете)
- Валидация redirect_uri - должен точно совпадать с зарегистрированным
Рекомендации
Настройка для Production
HTTPS обязателен
Безопасность сессий
В config/session.php:
Кэширование конфигурации
Тестирование
Проверка установки
Проверка маршрутов
Устранение проблем
"Class VTBIDServiceProvider not found"
"Route [vtbid.success] not defined"
Создайте маршрут vtbid.success в routes/web.php
"invalid_client"
Проверьте VTBID_CLIENT_ID и VTBID_CLIENT_SECRET в .env
"redirect_uri_mismatch"
Убедитесь, что VTBID_REDIRECT_URI точно совпадает с зарегистрированным в VTB ID
Документация VTB ID
Endpoints
- Authorization URL:
https://id.vtb.ru/ - Token URL:
https://id.vtb.ru/oauth2/token - User Data URL:
https://gost-id.vtb.ru/oauth2/me - Revoke Token URL:
https://id.vtb.ru/oauth2/revoke
Лицензия
MIT License. Подробности в LICENSE.md.
Автор
Igor Sazonov
- Email: [email protected]
- GitHub: @tigusigalpa
Поддержка
Если у вас возникли проблемы или вопросы, создайте issue на GitHub.
Made with ❤️ for Laravel community
All versions of vtb-id-php with dependencies
illuminate/support Version ^8.0|^9.0|^10.0|^11.0|^12.0
guzzlehttp/guzzle Version ^7.0