Office js Outlook API returns EWS 的 JWT 令牌无效
Office js Outlook API returns invalid JWT token for EWS
我在 Outlook 中有一个具有 ReadWriteMailbox 权限的加载项,但是当我调用 getCallbackTokenAsync({ isRest: false }, callback) 时,我取回的令牌没有签名。基本上,我得到的令牌格式为 xxxxxx.yyyyyy(而不是 xxxxxx.yyyyyy.ZZZZZZ)。
这似乎是最近 2 天才开始发生的,但是,我最后一次参与这个项目是大约 4 个月前,所以它可能在现在之前的某个时候开始发生,但我现在才看到错误。
EWS 服务器是 Office 365 (https://outlook.office365.com/EWS/Exchange.asmx)。
我还注意到调用 getCallbackTokenAsync 返回了相同的令牌,但减去了最近 2 天的签名。
在几乎用这个把我的头发拉出来之后,我开始工作了。
最初获取无效 JWT 的问题是几个问题(或疑似问题)的结果。 JWT 实际上是有效的,虽然已过期,但是当我在调试时将值转储到 F12 工具控制台时,该值被截断为 1024 个字符。我在这里发现:. The JWT was expired because it was using a token from the cache instead of requesting a new one from EWS. I fixed that by by closing Outlook, clearing IE's cache, and re-opening Outlook as suggested by the Outlook Add-ins Team - MSFT.
现在的问题是让 EWS 接受令牌,因为我一直收到 401 错误 ("Access is denied. Check your credentials and try again.")。我发现这是因为我是 运行 它在本地主机上使用的加载项和后续 Azure 函数。显然,EWS 不喜欢 localhost。将加载项部署到开发环境后,一切都很好。
感谢 Outlook Add-ins Team - MSFT 的帮助。
我在 Outlook 中有一个具有 ReadWriteMailbox 权限的加载项,但是当我调用 getCallbackTokenAsync({ isRest: false }, callback) 时,我取回的令牌没有签名。基本上,我得到的令牌格式为 xxxxxx.yyyyyy(而不是 xxxxxx.yyyyyy.ZZZZZZ)。
这似乎是最近 2 天才开始发生的,但是,我最后一次参与这个项目是大约 4 个月前,所以它可能在现在之前的某个时候开始发生,但我现在才看到错误。
EWS 服务器是 Office 365 (https://outlook.office365.com/EWS/Exchange.asmx)。
我还注意到调用 getCallbackTokenAsync 返回了相同的令牌,但减去了最近 2 天的签名。
在几乎用这个把我的头发拉出来之后,我开始工作了。
最初获取无效 JWT 的问题是几个问题(或疑似问题)的结果。 JWT 实际上是有效的,虽然已过期,但是当我在调试时将值转储到 F12 工具控制台时,该值被截断为 1024 个字符。我在这里发现:
现在的问题是让 EWS 接受令牌,因为我一直收到 401 错误 ("Access is denied. Check your credentials and try again.")。我发现这是因为我是 运行 它在本地主机上使用的加载项和后续 Azure 函数。显然,EWS 不喜欢 localhost。将加载项部署到开发环境后,一切都很好。
感谢 Outlook Add-ins Team - MSFT 的帮助。