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