我目前正在努力实现ms-graph-api调用来访问微软的一些信息。我对日历特别感兴趣。如果能够添加一些事件并删除它们或扫描这些事件,那就太好了。这个用例的api非常清晰,甚至有些直观。
我能够追溯到一些我正在寻找的东西,我已经在代码中看到了,但它不是一个可行的解决方案,所以从来没有。
https://github.com/azuread/microsoft-authentication-library-for-java/issues/228
微软员工善意地告知,他们的计划中没有这样的主流。我已经成功地获得了这个授权代码并以编程方式调用api,但是每次令牌过期(大约一个小时左右)时,用户都要用ms oauth重新验证自己,这将是一件非常痛苦的事情。我想,这样一个科技巨头必须有一些可以对程序员友好的东西。
还有什么我可以用的吗?
1条答案
按热度按时间7jmck4yq1#
如果使用msal获取令牌,刷新令牌将存储在未公开的缓存中。我们可以用
acquireTokenSilently
,请参见此处的代码。如果您想直接获取刷新令牌,如文档所示,msal不支持它,adal4j将支持它。
在adal4j中,刷新令牌是公开的——这允许开发人员缓存它们。然后他们会使用
AcquireTokenByRefreshToken()
启用解决方案,例如实现在用户不再连接时代表用户刷新 Jmeter 板的长时间运行服务。出于安全原因,msal for java不公开刷新令牌。相反,msal为您处理刷新令牌。
msalforjava有一个api,允许您将使用adal4j获得的刷新令牌迁移到clientapplication:acquiretoken(refreshtTokenParameters)中。使用此方法,可以提供以前使用的刷新令牌以及所需的任何作用域(资源)。刷新令牌将被交换为一个新令牌,并被缓存以供应用程序使用。