我正在尝试授权应用程序使用Visual Studio Online REST API。但我一直收到错误400页。该应用目前正在Android模拟器中运行,授权发生在应用中的网页浏览中。我的授权请求如下所示:
https://app.vssps.visualstudio.com/oauth2/authorize
?client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
&status=User&response_type=Assertion&scopes=vso.chat_write
&redirect_uri=http%3A%2F%2Fwww.myurl.com
现在,我认为在Oauth的工作方式上我只缺少一些东西。我的redirect_uri指向静态HTML页面,但在阅读时:
http://www.visualstudio.com/en-us/integrate/get-started/get-started-auth-oauth2-vsi
似乎我的重定向URI实际上负责生成授权代码。不幸的是,文档没有解释我需要在该URL中放置什么类型的编程才能生成代码。有人可以帮忙吗?
答案 0 :(得分:2)
您的redirect_uri
不负责生成code
。发送授权请求的授权服务器将在用户进行身份验证并生成同意后生成code
。 code
将redirect_uri
作为查询参数发送回code
。您的处理代码应从查询参数中选取POST https://app.vssps.visualstudio.com/oauth2/token
?client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer
&client_assertion={AppSecret}
&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
&assertion={authorization code}
&redirect_uri={callbackUrl}
,并在授权服务器的令牌端点交换访问令牌,如下所示:
{{1}}