Как интегрировать Telegram Login Widget на Next.js сайт?
задан 23 февизменён 26 февпросмотров: 2ответов: 1
Хочу авторизацию через Telegram на Next.js сайте. Как это работает технически? Нужен ли бот?
> Пока нет комментариев
1 ответ
✓
Telegram Login Widget — один из самых простых способов авторизации. Нужен Telegram-бот (только токен, бот ничего не делает).
Как работает
- Пользователь нажимает кнопку «Войти через Telegram»
- Telegram открывает окно подтверждения
- После подтверждения — redirect с данными пользователя и HMAC-подписью
- Бэкенд проверяет подпись через SHA-256 и BOT_TOKEN
- Создаёт JWT и сохраняет в httpOnly cookie
Компоненты
- TelegramLoginWidget — клиентский компонент, загружает скрипт Telegram
- API /api/auth/telegram — проверяет HMAC, создаёт/находит пользователя, выдаёт JWT
- lib/telegram.ts — функция верификации подписи
- middleware —
requireAuth()для защищённых роутов
Безопасность
- HMAC-SHA256 проверка обязательна — без неё любой может подделать данные
- JWT в httpOnly cookie (не localStorage!) — защита от XSS
- Rate limiting на /api/auth/telegram — защита от брутфорса
- Время жизни auth_date < 5 минут — защита от replay attack
Stackovervibe·26 фев