- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为什么我无法多次调用 graphClient?
代码:
public static void initializeGraphAuth(String authorizationCode) {
List<String> scopes = new ArrayList<>();
scopes.add("https://graph.microsoft.com/mail.read");
// Create the auth provider
final AuthorizationCodeCredential authCodeCredential = new AuthorizationCodeCredentialBuilder().clientId(AzureConstants.CLIENT_ID).clientSecret(AzureConstants.CLIENT_SECRET).authorizationCode(authorizationCode) .redirectUrl(AzureConstants.REDIRECT_URI).build();
authProvider = new TokenCredentialAuthProvider(scopes, authCodeCredential);
// Create default logger to only log errors
DefaultLogger logger = new DefaultLogger();
logger.setLoggingLevel(LoggerLevel.ERROR);
// Build a Graph client
graphClient = GraphServiceClient.builder().authenticationProvider(authProvider).logger(logger).buildClient();
}
public static User getUserDetails() {
return graphClient.me().buildRequest().get();
}
public static List<Group> getUserGroups() {
GroupCollectionPage groups = graphClient.me().transitiveMemberOfAsGroup().buildRequest().get();
return groups.getCurrentPage();
}
在主应用程序中,我调用 getUserDetails() 和 getUserGroups() 方法来分别获取用户详细信息和组详细信息。能够获取用户详细信息但无法获取下面的组详细信息是错误
com.microsoft.aad.msal4j.MsalInteractionRequiredException: AADSTS54005: OAuth2 Authorization code was already redeemed, please retry with a new valid code or use an existing refresh token.
Trace ID: 48d1fee1-cb8b-48c6-a7ec-91e2b2057500
Correlation ID: c58388ec-417c-4398-82ee-68910568f4df
如果我只调用 getUserDetails 或 getUserGroups 中的一个方法,它工作正常,但是当我在代码中调用这两种方法时,它会给出错误
我如何使用 graphClient 对象来获取用户和组的详细信息?
感谢您的帮助
最佳答案
当您的应用程序使用授权代码获取 token 时,这种行为是正常的。
在这种情况下,刷新 token 可用于为其他资源获取额外的 token 。
您可以通过 Google OAuth2 客户端库使用刷新 token 接收新的访问 token 。
更多相关信息,您可以引用OAuth 2.0 and the Google OAuth Client Library for Java
引用文献:
关于java - OAuth2 授权代码已兑换,请使用新的有效代码重试或使用现有的刷新 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69806282/
为了实现促销代码,我执行了以下步骤: 在 Google Play Console>User Acquisition>Promotions 我添加了促销 Activity 在应用程序中,我使用它来将用户
我希望能够生成链接,允许我的 iOS 应用程序的用户兑换应用程序内购买的促销代码。因此,他们可能会收到一封带有“兑换代码”按钮的电子邮件,该按钮会将他们带到应用商店兑换页面,其中预填充了代码,或者为他
从最近的版本和下面的对话来看,它说现在 Katana(4.1.0) 支持代码流和自动代码赎回(这意味着我们没有明确调用 tokenendpoint 来赎回 idtoken、accesstoken 等的
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
我是一名优秀的程序员,十分优秀!