4

我正在尝试使用 Lync UCWA 刷新 OAuth 令牌,遵循此处的示例,https: //msdn.microsoft.com/en-us/library/office/dn356686.aspx#sectionSection3

他们文档中的示例使用grant_type urn:microsoft.rtc:annmeeting,但我使用的是grant_type=password。我的客户端首先成功地对 /WebTicket/oauthtoken 端点进行了身份验证,并且我收到了 access_token 就好了。

几个小时后,我需要通过使用以下参数再次发布到 /WebTicket/oauthtoken 来刷新 OAuth 令牌:

grant_type=password
username=$my_username
password=$my_password
ms_rtc_renew=$access_token (cwt=AA....)

不过,这会返回状态 400,并带有错误:invalid_request 和标题中的注释“没有有效的安全令牌”。我放入 ms_rtc_renew 的值与我在其他端点的所有标头中使用的值相同,'Authorization': ['Bearer $access_token'],因此令牌工作正常。

我已确保在发布到 /WebTicket/oauthtoken 端点时使用了 Content-Type: application/x-www-form-urlencoded 的标头,并且在发布之前对数据进行了 urlencoding。

是否有其他人能够使用 Lync UCWA 1.0 和 grant_type=password 刷新 OAuth 令牌?任何有经验的 UCWA 开发人员都认识到我在帖子中缺少什么来刷新令牌?

提前致谢。

4

1 回答 1

5

ms_rtc_renew 特定于匿名会议授权类型。在同一文档中,它提到:

为经过身份验证的用户刷新令牌与获取新令牌的流程相同。

这是正确的思路,但它确实省略了一些关键信息。如果您有兴趣保持原始 UCWA 应用程序有效,则必须在对应用程序执行 POST 请求时提供相同的信息,否则它将创建一个新应用程序。

扩展答案

当您到达 UCWA 应用程序向请求返回 404 并指示当前 OAuth 令牌无效的点时,需要更新。按照KeyTasks-CreateApplication的步骤,在第 5 步请求新令牌。此时获取新令牌并替换Authorization标头并尝试发出失败的请求。

如果这不起作用,请考虑使用相同的数据(UserAgent、EndpointId、Culture)重新创建应用程序(步骤 #9)。您需要替换任何保存的 Json 数据,因为应用程序 Url 可能会在实例之间更改(不完全确定)。

于 2015-04-06T13:39:27.203 回答