我正在使用 OAuth2 测试一些社交 API 并面临重定向 url 的问题,我的应用程序正在使用嵌入式浏览器从服务器获取访问令牌并将 url 重定向到http://localhost
,它在我的计算机上运行良好,但如果其他用户的计算机没有是否安装了任何 Web 服务器,我应该如何设置重定向 url,以及如何让我的应用程序监听访问令牌而不是手动复制并粘贴回来?
任何帮助将不胜感激。谢谢你。
我正在使用 OAuth2 测试一些社交 API 并面临重定向 url 的问题,我的应用程序正在使用嵌入式浏览器从服务器获取访问令牌并将 url 重定向到http://localhost
,它在我的计算机上运行良好,但如果其他用户的计算机没有是否安装了任何 Web 服务器,我应该如何设置重定向 url,以及如何让我的应用程序监听访问令牌而不是手动复制并粘贴回来?
任何帮助将不胜感激。谢谢你。
您不一定需要网络服务器。您可以在您的 STS 中注册一个虚构的内容redirect_uri
,然后配置您托管的 WebBrowser侦听重定向到此 url 并access_token
从 STS 将发送的 url 的片段部分中提取。STS 的响应如下所示:
http://fictitious.com/#access_token=some_token&token_type=bearer&expires_in=3600
因此,为了实现隐式授权流程,有两个步骤:
您将托管的 WebBrowser 定向到 STS 的授权端点:http://sts.com/authorize?client_id=CLIENT_ID&response_type=token&redirect_uri=http%3A%2F%2Ffictitious.com%2F
用户根据 STS 进行身份验证,并被重定向回redirect_uri
第一步中提供的虚构 url。
您拦截到此 url 的重定向并从中提取access_token
。