2016-06-16 4 views
12

Я использую jsonwebtoken в приложении API NodeJs для аутентификации пользователя в моем приложении API. Поток, что я имею установку следующим образом:Обновить токен Jsonwebtoken

1) пользователь регистрирует через SignUp 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 часа, я хочу, чтобы клиент (мобильное приложение) мог запросить новый токен доступа. Спасибо заранее.

+0

Посмотрите мой пост здесь: http://stackoverflow.com/questions/38766688/understanding-json-web-token-jwt-in-context-of-web-authentication это е xplains устанавливает с помощью токенов обновления. –

ответ

20

У меня была такая же проблема в проекте.

1) Я создал токен обновления и вернул его при входе пользователя (с помощью jsonwebtoken). Я сохранил токен обновления с пользователем.

2) Когда клиент посылает запрос с истекшей лексемой, сервер возвращает 401.

3) Я реализовал новый путь, чтобы обновить маркер. Он получает токен обновления и пользователь в качестве параметра и возвращает новый токен (jsonwebtoken).

4) (опционально) можно реализовать механизм недействительности токен обновления, в случае, если кто-то украл его

я на основе моего осуществления в этой должности, действительно хорошие фрагменты кода:

Refresh token in JWT (Node.js implementation)

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

+1

Используя эту технику для моего нового проекта, спасибо. –

+0

Дайте мне знать, если вам нужна помощь или что-то еще –

Смежные вопросы