繁体   English   中英

Node-adal Toekn到期和缓存

[英]node-adal toekn expiry and caching

尝试使用节点adal库,并有几个问题。

  1. 库中是否可以调用一个函数来查看访问令牌是否已过期? 我想在刷新之前检查当前访问令牌是否有效。
  2. 当前,我将令牌持久存储到azure存储中,是否可以将其卸载到库中并让其处理将令牌持久存储到表中?
  3. Adal库的C#版本具有AcquireTokenSilentAsync(String,ClientAssertion,UserIdentifier)方法,该方法接受UserIdentifier。 节点版本是否等效?

据我所知,在ADAL库中没有这样的方法来检查令牌是否已过期。 但是,它提供了类似的功能_refreshEntryIfNecessary函数来检查和刷新令牌。 您还可以对base64编码的令牌进行解码,提取exp声明并与日期时间进行比较。 到期表示为NumericDate

一个JSON数值,表示从1970-01-01T00:00:00Z UTC到指定的UTC日期/时间为止的秒数,而忽略了leap秒。 这等效于IEEE Std 1003.1,2013版[POSIX.1]定义“自纪元以来的秒数”,其中每天准确地占了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#版本具有AcquireTokenSilentAsync(String,ClientAssertion,UserIdentifier)方法,该方法接受UserIdentifier。 节点版本是否等效?

有几种方法可以静默获取令牌。 例如,我们可以从缓存中获取令牌,并在令牌过期时对其进行刷新。 我们还可以使用“ 客户端凭据流”和“ 资源所有者密码凭据授予流”来获取令牌。 但是,NodeJ的ADA1没有提供相应的方法。 您可以从适用于GitHub上Node.jsWindows Azure Active Directory身份验证库(ADAL)提交想法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM