1

我正在使用 OAuth2 测试一些社交 API 并面临重定向 url 的问题,我的应用程序正在使用嵌入式浏览器从服务器获取访问令牌并将 url 重定向到http://localhost,它在我的计算机上运行良好,但如果其他用户的计算机没有是否安装了任何 Web 服务器,我应该如何设置重定向 url,以及如何让我的应用程序监听访问令牌而不是手动复制并粘贴回来?

任何帮助将不胜感激。谢谢你。

4

1 回答 1

3

您不一定需要网络服务器。您可以在您的 STS 中注册一个虚构的内容redirect_uri,然后配置您托管的 WebBrowser侦听重定向到此 url 并access_token从 STS 将发送的 url 的片段部分中提取。STS 的响应如下所示:

http://fictitious.com/#access_token=some_token&token_type=bearer&expires_in=3600

因此,为了实现隐式授权流程,有两个步骤:

  1. 您将托管的 WebBrowser 定向到 STS 的授权端点:http://sts.com/authorize?client_id=CLIENT_ID&response_type=token&redirect_uri=http%3A%2F%2Ffictitious.com%2F

  2. 用户根据 STS 进行身份验证,并被重定向回redirect_uri第一步中提供的虚构 url。

  3. 您拦截到此 url 的重定向并从中提取access_token

于 2013-06-23T15:44:45.513 回答