Насколько я знаю, в библиотеке ADAL такого метода нет, чтобы проверить, истек ли токен. Однако у него есть аналогичная функция _refreshEntryIfNecessary
, чтобы проверить и обновить токен. Вы также можете декодировать токен, кодированный base64, и извлечь заявку exp
и сравнить с датой. Истечение представлена как NumericDate:
JSON числовое значение не представляющее количество секунд от 1970-01-01T00: 00: 00Z UTC до указанной даты/времени UTC, не обращая внимания корректировочные секунды. Это эквивалентно определению IEEE Std 1003.1, 2013 Edition [POSIX.1] «Секунды с эпохи», в котором каждый день учитывается ровно 86400 секунд, за исключением тех нецелых значений. См. RFC 3339 [RFC3339] для получения подробной информации о дате/времени в целом и UTC в частности.
А вот код, используя jsonwebtoken
для справки:
function isTokenExpired(token) {
var decoded = jwt.decode(token);
var isExpired = decoded.exp - Math.floor(Date.now()/1000) < 0
return isExpired;
}
console.log(isTokenExpired(token));
В настоящее время я упорно лексемы к лазурным хранения, есть ли способ, я мог бы разгрузить эту библиотеку и пусть он справится с тем, чтобы упорные жетоны на стол?
Какая реальная проблема блокирует вас? Основываясь на моем понимании, бизнес-логика реализуется нами самим.
C# версия ADAL библиотеки имеет метод AcquireTokenSilentAsync (String, ClientAssertion, UserIdentifier), который принимает в UserIdentifier. Есть ли эквивалент для версии узла?
Существует несколько способов получить токен тихо. Например, мы можем получить токен из кеша и обновить его, если он истек. Мы также можем приобрести токен, используя Клиентский учетный поток и Ресурс Владелец Пароль Учетные данные Ресурс гранта. Однако ADAl для NodeJs не предоставляет соответствующий метод. Вы можете представить идею с Windows Azure Active Directory Authentication Library (ADAL) for Node.js на GitHub.