2016-10-31 5 views
0

Попытка использования node-adal библиотеки и вопросов.Узел-adal toekn истечения срока действия и кеширования

  1. Есть ли функция в библиотеке, которую я мог бы позвонить, чтобы узнать, истек ли токен доступа? Я хотел проверить, действительно ли текущий токен доступа действителен или нет, перед его обновлением.
  2. В настоящее время я сохраняю маркеры в лазурном хранилище, есть ли способ, чтобы я мог разгрузить это в библиотеку и позволить ему иметь дело с сохранением жетонов на столе?
  3. В версии библиотеки adal для C# есть метод AcquireTokenSilentAsync (String, ClientAssertion, UserIdentifier) ​​, который принимает пользовательский идентификатор. Есть ли эквивалент для версии узла?

ответ

0

Насколько я знаю, в библиотеке 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.