JWT-авторизация без программирования: выпуск и проверка токенов
JWT-токен в nana800 выпускается и проверяется двумя блоками без кода: один подписывает токен секретным ключом, второй проверяет подпись и срок действия. Так к своему API на вебхуках добавляется вход по токену, как на обычном сервере. Выпуск или проверка токена стоит 0,10 ₽, а баланс каждый месяц бесплатно пополняется до 350 ₽.
Собрать в конструкторе- Запуск блока: 0,10 ₽
- Бесплатно каждый месяц: 350 ₽
- Карта не нужна
Что можно сделать
- Выдавать токен в ответе на запрос, например после проверки логина в вашей базе данных
- Закрывать вебхуки от чужих: схема выполняет работу, только если токен из запроса прошёл проверку
- Задавать срок жизни токена: 30m, 12h, 7d, 2w или число секунд, либо выпускать токен без срока
- Класть в токен свои данные в JSON, например id пользователя и роль, и читать их после проверки
- Указывать владельца (sub), издателя (iss) и получателя (aud), если их проверяет принимающая система
- Проверять токены, которые ваш сервер подписал алгоритмом HS512 тем же секретным ключом
Блоки в конструкторе
Выпуск JWT-токена
Действие · 0,10 ₽ за запуск
Подписывает новый токен алгоритмом HS512. Поля: секретный ключ, владелец (sub), данные в JSON, срок жизни, издатель (iss) и получатель (aud). Возвращает token, время окончания expires_at, success и error_text.
Проверка JWT-токена
Действие · 0,10 ₽ за запуск
Проверяет подпись и срок действия токена тем же секретным ключом. Возвращает valid (true или false), данные из токена в payload и причину отказа в error_text, например истёкший срок.
Как настроить
- 1
Придумайте секретный ключ
Сгенерируйте длинную случайную строку, не короче 32 символов, и сохраните её в переменных проекта. Этим ключом подписываются токены, поэтому его нельзя никому показывать. Обоим блокам нужен один и тот же ключ.
- 2
Соберите выдачу токена
Создайте схему и добавьте триггер «webhook» с методом POST и путём, например /token. Подключите блок «sign jwt»: вставьте ключ, в поле владельца (sub) подставьте id пользователя из запроса, задайте срок жизни, например 7d. Верните токен блоком «webhook response».
- 3
Соберите проверку токена
Добавьте второй триггер «webhook» для закрытого запроса и подключите блок «validate jwt». В поле токена подставьте токен из запроса, в поле ключа тот же ключ. Блоком «condition» проверьте valid: при true выполняйте работу, при false отвечайте кодом 401.
- 4
Включите и проверьте схему
Включите схему, нажмите кнопку «API» в конструкторе и во вкладке «Попробовать» запросите токен, а затем отправьте его на закрытый вебхук. Готовая основа есть в шаблоне «Jwt Token Auth». Пока схема включена, она стоит 0,42 ₽ в час.
Шаблоны с этим сервисом
- Выдача и проверка JWT (Jwt Token Auth)
Готовый шаблон JWT-авторизации: один адрес выдаёт подписанный токен, второй проверяет его и отвечает результатом. Бесплатный баланс каждый месяц, карта не нужна.
Частые вопросы
Соберите первую схему бесплатно
Регистрация бесплатная, карта не нужна. Каждый месяц баланс бесплатно пополняется до 350 ₽, этого хватает примерно на 3 500 запусков простых блоков.
Собрать в конструкторе