2015-04-03 21 views
3

我试图刷新OAuth凭证使用Lync UCWA,这里下面的例子中,https://msdn.microsoft.com/en-us/library/office/dn356686.aspx#sectionSection3UCWA刷新与grant_type Oauth权杖=密码

的例子在他们的文档使用grant_type瓮:microsoft.rtc:anonmeeting,但我正在使用grant_type =密码。我的客户端首先成功通过/ 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的标头,并且我在发布前对数据进行了urlen编码。

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

在此先感谢。

回答

4

ms_rtc_renew特定于匿名会议授予类型。在同一份文件中提到:

Refreshing a token for authenticated users is the same flow as acquiring a new token.

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

扩展答案

当你到达了UCWA的应用程序返回404请求,并表示当前的OAuth令牌无效,需要更新的点。按照KeyTasks-CreateApplication的步骤,在步骤#5上请求一个新的令牌。此时取新的令牌并替换授权头并尝试发出失败的请求。

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

+0

谢谢谢尔比兹的回复。对不起,我还不清楚,当我尝试更新我使用grant_type = password获得的令牌时,UCWA有没有其他的关键/价值? 类似于grant_type = password&username = johndoe&password = A3ddj3w&access_token = cwt ...? – Kafonek 2015-04-06 17:44:35

+1

扩大我的原始片段,让我知道你是否有任何意义。 – ShelbyZ 2015-04-07 13:43:00

+0

好的,据我了解,那么你只是建议在8小时结束时,我应该创建一个新的应用程序,而不是更新已有的access_token。这是一个完全可以接受的解决方案,但它似乎违背了UCWA文档的精神。没问题,这是UCWA 1.0的原因! – Kafonek 2015-04-07 14:30:53

相关问题