默认情况下,用于Java的 MSAL 提供内存中令牌缓存。 内存中的令牌缓存会在应用程序整个运行期间一直保留。
查看缓存中的帐户
您可以通过调用 PublicClientApplication.getAccounts() 来检查缓存中有哪些账户,如以下示例所示:
PublicClientApplication pca = new PublicClientApplication.Builder(
labResponse.getAppId()).
authority(TestConstants.ORGANIZATIONS_AUTHORITY).
build();
Set<IAccount> accounts = pca.getAccounts().join();
从缓存中删除帐户
若要从缓存中删除帐户,请查找需要删除的帐户,然后调用, PublicClientApplication.removeAccount() 如以下示例所示:
Set<IAccount> accounts = pca.getAccounts().join();
IAccount accountToBeRemoved = accounts.stream().filter(
x -> x.username().equalsIgnoreCase(
UPN_OF_USER_TO_BE_REMOVED)).findFirst().orElse(null);
pca.removeAccount(accountToBeRemoved).join();
了解详细信息
如果您使用的是适用于 Java 的 MSAL,请参阅 MSAL for Java 中的自定义令牌缓存序列化。