2016-10-31 5 views
0

node-adalライブラリを使用しようとしていて、いくつか質問があります。node-adal toekn有効期限切れとキャッシュ

  1. アクセストークンが期限切れになっていないかどうかを確認するために呼び出すことのできる関数がライブラリにありますか?現在のアクセストークンが有効かどうかを確認してから、リフレッシュする必要がありました。
  2. 現在、私は空のストレージにトークンを残しています。これをライブラリにロードして、トークンをテーブルに残す方法を教えてください。
  3. adalライブラリのC#バージョンには、UserIdentifierを取り込むAcquireTokenSilentAsync(String、ClientAssertion、UserIdentifier)メソッドがあります。ノードのバージョンに相当するものはありますか?

答えて

0

私の知る限り、ADALライブラリにトークンが期限切れであるかどうかをチェックする方法はありません。しかし、それはトークンをチェックして更新する同様の機能_refreshEntryIfNecessaryを提供しています。 base64でエンコードされたトークンをデコードしてexpのクレームを抽出し、日付時刻と比較することもできます。 満了はNumericDateとして表される:うるう秒を無視し、指定されたUTC日付/時刻まで00Z UTC:00:1970-01-01T00からの秒数を表す

A JSON数値。これはIEEE Std 1003.1、2013 Edition [POSIX.1]の定義「The Epoch以後の秒数」に相当し、毎日が正確に86400秒で占められ、非整数値以外は表現可能です。一般的な日付と時刻、特にUTCに関する詳細は、RFC 3339 [RFC3339]を参照してください。

そしてここでのコードは、あなたの参考のために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)); 

現在、私はAzureストレージにトークンを永続化するよ、私は図書館にこれをオフロードできな方法がありますトークンをテーブルに固執させることに対処しますか?

本当の問題はあなたをブロックしていますか?私の理解に基づいて、ビジネスロジックは自分自身で実装されています。

adalライブラリのC#バージョンには、UserIdentifierを取り込むAcquireTokenSilentAsync(String、ClientAssertion、UserIdentifier)メソッドがあります。ノードのバージョンに相当するものはありますか?

トークンを静かに取得する方法はいくつかあります。たとえば、キャッシュからトークンを取得し、トークンが期限切れになった場合に更新することができます。 クライアント資格フローリソースオーナーパスワード資格付与フローを使用してトークンを取得することもできます。しかしながら、NodeJのADA1は対応する方法を提供しない。あなたはGitHubのWindows Azure Active Directory Authentication Library (ADAL) for Node.jsからアイデアを提出することができます。

関連する問題