我正在构建一个使用 ASPOSE 为 Office365 用户获取电子邮件的应用程序。
我的用户启用了 MFA,因此我无法像 Aspose 文档中推荐的那样使用 ROPC
一旦获得访问令牌,我需要在其过期时刷新它。
我在 Microsoft 和 Aspose 文档中搜索了几个小时,但我有点迷失了。
有人遇到同样的问题吗?
谢谢
请参阅 Microsoft 文档的以下部分:
MSAL 维护一个令牌缓存(或两个用于机密客户端的缓存) 应用程序)并在获取令牌后缓存该令牌。在许多 在这种情况下,尝试默默获取一个令牌将获取另一个令牌 基于缓存中的令牌具有更多范围。它也有能力 当令牌接近过期时刷新令牌(如令牌 缓存还包含刷新令牌)。
因此,您应该监控访问令牌过期或在一定时间间隔(例如 30 分钟)后强制刷新:
AuthenticationResult result;
try
{
// will handle expired Access Tokens by fetching new ones using the Refresh Token
result = await AcquireTokenSilent(scopes).ExecuteAsync();
}
catch(MsalUiRequiredException ex)
{
result = AcquireTokenXXXX(scopes, ..).WithXXX(…).ExecuteAsync();
}