如何测试刷新和过期令牌场景?

How to test refresh and expired token scenarios?

我正在使用 msal.js 库对我的 AAD 帐户进行身份验证。我已经实现了处理令牌刷新的逻辑,但我不确定如何最好地手动测试它。

    try {
      const response = await userAgentApplication.acquireTokenSilent(parameters);
      jwtIdToken = response.idToken.rawIdToken;
    } catch (error) {
      if (error instanceof InteractionRequiredAuthError) {
        if (type === LoginType.Redirect) {
          userAgentApplication.acquireTokenRedirect(parameters);
        }

        const response = await userAgentApplication.acquireTokenPopup(parameters);
        jwtIdToken = response.idToken.rawIdToken;
      } else {
        // Error was not related to needing interaction
        throw error;
      }
    }

我能够使用 system 配置并将令牌更新偏移量设置为大于到期限制的值来验证令牌是否正在正确刷新。

  system: {
    tokenRenewalOffsetSeconds: 60 * 60
  }

唯一不知道如何测试的场景是token不能再刷新,抛出InteractionRequiredAuthError错误后用户需要重新登录。我真的希望我不必让会话保持活动状态 24 小时然后尝试刷新令牌...

从应用程序撤回用户同意 - 转到 app portal,找到 JS 应用程序并将其删除。这将取消您对此应用程序的同意,并使您的刷新令牌无效。还有一个 Powershell 命令。