nfp*_*lee 30 .net c# oauth-provider oauth-2.0
我已成功使用Facebook Graph API(使用oauth 2.0进行身份验证)一段时间了.我现在需要编写自己的API,允许开发人员以类似的方式连接到它.我已经调查了各种各样的图书馆,但我想要一些更精简的东西,所以我决定推出自己的图书馆.看看代码我必须在Facebook上验证用户它看起来相对简单,但如果我偏离轨道,请纠正我.
首先,我需要提供一个消费者需要重定向到的安全页面.例如https://api.mydomain.com/oauth/authorize?client_id=CONSUMER_KEY&redirect_url=CALLBACK_URL.用户将验证应用程序,然后我将使用查询字符串中的oauth_token重定向回回调回URL中提供的URL.我想我可以在这里为oauth_token生成一个随机唯一字符串,并将其存储在该特定消费者的用户身上(编辑:请参阅下面的答案,这对于每个消费者应用程序而不是用户应该是唯一的).
这是第1步.我现在需要提供第二个安全页面,消费者会触发Web请求.例如https://api.mydomain.com/oauth/access_token?client_id=CONSUMER_KEY&client_secret=CONSUMER_SECRET&oauth_token=OAUTH_TOKEN_RETURNED_ABOVE.这将允许消费者交换上面返回的oauth_token作为访问令牌.我将再简单地生成一个随机的唯一字符串,并将其存储在针对该特定消费者的用户.
现在我的API将接受access_token用于尝试获取特定于正在使用它的用户的信息的方法.
我想知道我是否理解正确的事情.如果是这样的话,OAuth 2.0规范似乎非常微不足道.为什么我们必须用access_token交换oauth_token?我有自己的想法,但如果有人能帮助澄清这一点,我会很感激.
我非常感谢您的反馈,因为我不希望继续前进,浪费时间实现这一点,当它完全错误时.
谢谢
Teo*_*gul 48
实际上,协议流程图对于像OAuth 2那样可视化规范非常有用,但是只有一些部分工作在那里.由于我刚刚实现了仅客户端的OAuth 2库,我可以验证您是否在正确的轨道上.但这是一个问题:
oauth_token属于您的客户端应用程序(即桌面版Facebook阅读器),它会对您的应用程序进行身份验证(就像ID一样).您提交此选项以获取特定于您的应用程序并登录用户的access_token,这允许您访问与该用户相关的受限资源.
这是一个基本的桌面应用程序身份验证过程(摘自:http://developers.gigya.com/020_Developer_Guide/85_REST/OAuth2)
实际上是一个带时间轴的流量图(从上到下,取自:http://www.ibm.com/developerworks/web/library/wa-oauthsupport/?ca = dr- )
最后完整的程序是:(取自http://h2anetwork.org/ProjectDocs/DPI/DPI_Framework.html)
归档时间: |
|
查看次数: |
16616 次 |
最近记录: |