Обновить токен 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)

Надеюсь, что это поможет