Download the PHP package tigusigalpa/tbank-id-php without Composer
On this page you can find all versions of the php package tigusigalpa/tbank-id-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download tigusigalpa/tbank-id-php
More information about tigusigalpa/tbank-id-php
Files in tigusigalpa/tbank-id-php
Package tbank-id-php
Short Description PHP/Laravel package for TBank ID (OAuth2) integration
License MIT
Informations about the package tbank-id-php
TBank ID PHP/Laravel
PHP/Laravel пакет для интеграции с TBank ID (T-ID) (OAuth2 авторизация через аккаунт в Т-Банке, бывший Тинькофф-Банк).
🌐 Язык: Русский | English
Возможности
- ✅ OAuth2 авторизация через TBank ID
- ✅ Получение информации о пользователе
- ✅ Обновление токенов (refresh token)
- ✅ Отзыв токенов (logout)
- ✅ Поддержка Laravel 8-12
- ✅ Простой и понятный API
- ✅ Полная типизация
- ✅ Facade для удобного использования
Требования
- PHP 7.4 или выше
- Laravel 8.x, 9.x, 10.x, 11.x или 12.x
- Guzzle HTTP Client 7.x
Установка
Установите пакет через Composer:
Опубликуйте конфигурационный файл:
Настройка
1. Получение учетных данных
Для использования TBank ID (T-ID) вам необходимо:
- Подать заявку на подключение к TID
- Получить
client_idиclient_secretчерез менеджера
2. Переменные окружения
Добавьте следующие переменные в ваш .env файл:
3. Конфигурация
Файл конфигурации config/tbank-id.php:
Использование
Использование с обычным PHP (без Laravel)
Установка через Composer
Базовый пример
Обработка callback
Выход из системы
Обновление токена
Работа с данными пользователя
Использование с Laravel
1. Создайте маршруты
2. Создайте контроллер
Использование с Dependency Injection
Использование модели TBankUser
Обновление токена
Middleware для защиты маршрутов
Зарегистрируйте middleware в app/Http/Kernel.php:
Используйте в маршрутах:
API Методы
TBankIDClient
getAuthorizationUrl(array $scopes = ['openid', 'email', 'phone'], ?string $state = null): string
Генерирует URL для авторизации пользователя.
Параметры:
$scopes- массив запрашиваемых разрешений (scopes)$state- строка для защиты от CSRF атак (генерируется автоматически, если не указана)
Возвращает: URL для редиректа пользователя
getAccessToken(string $code): array
Обменивает authorization code на access token.
Параметры:
$code- код авторизации, полученный после редиректа
Возвращает: массив с токенами:
refreshAccessToken(string $refreshToken): array
Обновляет access token используя refresh token.
Параметры:
$refreshToken- refresh token
Возвращает: массив с новыми токенами
getUserInfo(string $accessToken): array
Получает информацию о пользователе.
Параметры:
$accessToken- действующий access token
Возвращает: массив с данными пользователя:
revokeToken(string $token, string $tokenTypeHint = 'access_token'): bool
Отзывает токен (выход из системы).
Параметры:
$token- токен для отзыва$tokenTypeHint- тип токена ('access_token' или 'refresh_token')
Возвращает: true при успехе
verifyState(string $receivedState, string $expectedState): bool
Проверяет state параметр для защиты от CSRF.
Параметры:
$receivedState- полученный state$expectedState- ожидаемый state
Возвращает: true если state совпадает
Доступные Scopes
openid- базовая информация (обязательный)email- адрес электронной почтыphone- номер телефонаprofile- профиль пользователя (имя, фамилия и т.д.)
Обработка ошибок
Все методы могут выбросить исключение TBankIDException:
Безопасность
- Всегда используйте HTTPS в production окружении
- Проверяйте state параметр для защиты от CSRF атак
- Храните токены безопасно (используйте encrypted session или database)
- Не храните client_secret в публичном коде
- Используйте refresh tokens для обновления access tokens
- Отзывайте токены при выходе пользователя
Тестирование
Документация TBank ID
Примеры интеграции
Создание пользователя в базе данных
Использование с API Resources
Changelog
[1.0.0] - 2025-01-01
Added
- OAuth2 авторизация через TBank ID
- Получение информации о пользователе
- Обновление токенов (refresh token)
- Отзыв токенов (logout)
- Поддержка Laravel 8-12
- Facade для удобного использования
- Модель TBankUser для работы с данными пользователя
- Комплексная документация на русском и английском
- Защита от CSRF с проверкой state параметра
- Полная типизация и обработка ошибок
- Примеры для обычного PHP и Laravel
Безопасность
Рекомендации по безопасности
- Всегда используйте HTTPS в production окружении
- Проверяйте state параметр для защиты от CSRF атак
- Храните токены безопасно (используйте encrypted session или database)
- Не храните client_secret в публичном коде
- Используйте refresh tokens для обновления access tokens
- Отзывайте токены при выходе пользователя
- Обновляйте зависимости регулярно
- Валидируйте пользовательский ввод перед обработкой
- Используйте переменные окружения для конфиденциальных данных
- Включите rate limiting на эндпоинтах авторизации
Важные замечания
- Access токены должны рассматриваться как конфиденциальные данные
- Refresh токены должны храниться безопасно и быть зашифрованы
- State параметр должен проверяться в callback для защиты от CSRF
- Время истечения токенов должно соблюдаться, токены обновляться при необходимости
- Неудачные попытки авторизации должны логироваться и мониториться
Сообщение об уязвимостях
Если вы обнаружили уязвимость безопасности в этом пакете, пожалуйста, отправьте email на [email protected]. Все уязвимости будут оперативно устранены.
Пожалуйста, не раскрывайте проблему публично до тех пор, пока она не будет устранена разработчиками.
Поддержка
- GitHub Issues: https://github.com/tigusigalpa/tbank-id-php/issues
- Email: [email protected]
- Telegram: @igoravel
Лицензия
MIT License. Подробности в файле LICENSE.
Автор
Igor Sazonov
- GitHub: @tigusigalpa
- Email: [email protected]
- Telegram: @igoravel
Contributing
Pull requests приветствуются! Для крупных изменений, пожалуйста, сначала откройте issue для обсуждения.
All versions of tbank-id-php with dependencies
illuminate/support Version ^8.0|^9.0|^10.0|^11.0|^12.0
guzzlehttp/guzzle Version ^7.0