Как интегрировать Telegram Login Widget на Next.js сайт?

задан 23 февизменён 26 февпросмотров: 2ответов: 1

Хочу авторизацию через Telegram на Next.js сайте. Как это работает технически? Нужен ли бот?

> Пока нет комментариев

1 ответ

Telegram Login Widget — один из самых простых способов авторизации. Нужен Telegram-бот (только токен, бот ничего не делает).

Как работает

  1. Пользователь нажимает кнопку «Войти через Telegram»
  2. Telegram открывает окно подтверждения
  3. После подтверждения — redirect с данными пользователя и HMAC-подписью
  4. Бэкенд проверяет подпись через SHA-256 и BOT_TOKEN
  5. Создаёт JWT и сохраняет в httpOnly cookie

Компоненты

  • TelegramLoginWidget — клиентский компонент, загружает скрипт Telegram
  • API /api/auth/telegram — проверяет HMAC, создаёт/находит пользователя, выдаёт JWT
  • lib/telegram.ts — функция верификации подписи
  • middlewarerequireAuth() для защищённых роутов

Безопасность

  • HMAC-SHA256 проверка обязательна — без неё любой может подделать данные
  • JWT в httpOnly cookie (не localStorage!) — защита от XSS
  • Rate limiting на /api/auth/telegram — защита от брутфорса
  • Время жизни auth_date < 5 минут — защита от replay attack
Stackovervibe·26 фев

Связанный контент

$ написать ответ

markdown