Как определить, как давно был выпущен токен обновления в Curity

#curity

#curity

Вопрос:

Как я могу определить, как давно был выпущен токен обновления на сервере Curity Identity? У меня есть пользовательская процедура обновления токена, которая проверяет, context.presentedToken.issuedAt но это всегда происходит сейчас, а не когда был выпущен токен обновления. Это ошибка или как я должен это сделать?

Ответ №1:

Выданное утверждение at ( issuedAt ) представленного токена должно сообщить вам, когда оно было выпущено; однако в версиях до 5.4.0 включительно была ошибка, из-за которой всегда выставлялось текущее время для предъявленного требования issued at токена (т. Е. Время обновления). Это легко обойти, используя утверждение not-before ( notBefore ) . Если вы используете сборку новее, чем 5.4, вы можете использовать issuedAt presentedToken вместо этого объект контекста; оба имеют одинаковое значение, поэтому нет проблем с обновлением, если вы использовали not-before и не сделали ничего особенного для этого во время выпуска.

(В некоторой степени связанный, вы также можете получить время с момента выдачи первоначального делегирования. Следующий фрагмент также показывает это.)

Просто добавьте это в свою процедуру, и она должна работать с любой версией Curity:

 var now = new Date() / 1000;
var secondsSinceOriginalIssuance = now - context.presentedToken.delegation.data.created;
var secondsSinceLastRefresh = now - context.presentedToken.notBefore;