我正在使用访问和刷新令牌来执行一些Microsoft图形查询。当访问令牌过期时,我使用刷新令牌执行标准令牌刷新过程。当我使用过期的token进行查询时,我得到以下错误:
{
"error": {
"code": "InvalidAuthenticationToken",
"message": "CompactToken validation failed with reason code: 80049228.",
"innerError": {
"request-id": "f4853bd8-1cf1-44eb-b4a6-b3c695223762",
"date": "2019-09-05T17:39:42"
}
}
}
我已经在try/catch中 Package 了一个查询,当我得到一个错误时,我会比较消息,因为InvalidAuthenticationToken可以在更多的情况下找到,而不仅仅是过期。是否有更好的方法来检查访问令牌过期?错误代码本身没有暴露的原因是什么?
2条答案
按热度按时间bxgwgixi1#
最简单的方法是使用MSAL SDK并让它处理令牌的该高速缓存/刷新。
或者,我建议简单地尝试获取令牌,并在失败时(typically AADSTS700020)启动用户操作以重新获取令牌。
原因是令牌可能会由于超出您控制范围的情况(证书撤销,条件访问策略,多因素要求)而无效。如果使用令牌,仅检查令牌过期并不能保证成功。
k5hmc34c2#
由于访问令牌过期而发生此错误。您可以使用访问令牌访问API
访问令牌的默认生存期是可变的。发布时,Microsoft身份平台会分配一个范围在**60-90分钟(平均75分钟)**之间的随机值作为访问令牌的默认生命周期。当访问令牌过期时,您可以通过此Microsoft API获取新的访问令牌
当使用上述请求生成新的访问令牌和刷新令牌时,您可以访问进一步的Microsoft图形查询