Обновить токен Jsonwebtoken
Я использую jsonwebtoken в приложении API NodeJs для аутентификации пользователя в моем приложении API. Поток, который у меня установлен, выглядит следующим образом:
1) Пользователь регистрируется через API регистрации и токен доступа генерируется с помощью следующего:
var jwt = require('jsonwebtoken');
var token = jwt.sign(user, _conf.authentication.superSecret, {
expiresIn: 1440 // I intend to keep it short.
});
2) Срок действия токена истекает через 24 часа. Этот токен возвращается клиентскому мобильному приложению для использования в качестве заголовка во всех последующих запросах API.
Я хочу знать, как мне работать с обновлением токена для jwt. В настоящее время у меня нет механизма для обновления токена. Следовательно, если токен истекает через 24 часа, я хочу, чтобы клиент (мобильное приложение) мог запросить новый токен доступа.
Спасибо заранее.
Ответы
Ответ 1
У меня была такая же проблема в проекте.
1) Я создал токен обновления и вернул его при входе пользователя (с jsonwebtoken). Я сохранил токен обновления с пользователем.
2) Когда клиент отправляет запрос с истекшим токеном, сервер возвращает 401.
3) Я реализовал новый путь для обновления токена. Он получает токен обновления и пользователь в качестве параметра и возвращает новый токен (jsonwebtoken).
4) (необязательно) Вы можете реализовать механизм для недействительности токена обновления, если кто-то украл его
Я основывал свою реализацию в этом посте, действительно хорошие фрагменты:
Обновить токен в JWT (Node.js)
Надеюсь, что это поможет