我一直在使用Facebook图形API(使用OAuth 2.0进行身份验证)。我现在需要编写自己的API,允许开发人员以类似的方式连接到它。我看过各种图书馆,但我想要一些瘦的东西,所以我决定滚动自己。看着我必须在Facebook上验证用户的代码看起来比较简单,但如果我要偏离轨道,请纠正我。

首先,我需要提供一个安全的页面,消费者需要重定向到。例如 https://api.mydomain.com/oauth/uthorize?client_id=consumer_key&骤数; redirect_url= callback_url 。用户将验证应用程序,然后我会将回调URL中提供的URL重定向到查询字符串中的OAuth_Token中提供的回调URL中提供的URL。我想我可以在这里生成一个随机唯一的字符串,用于oauth_token并将其存储在用户对此特定的消费者(编辑:请参阅下面的答案,这对于每个消费者应用程序而不是用户来说是唯一的。

这是步骤1。我现在需要提供消费者将触发Web请求的第二个安全页面。例如 https://api.mydomain.com/oauth/access_token?client_id= founder_key& client_secret= funder_secret&oauth_token= oauth_token_returned_above 。这将允许消费者交换上面返回的OAuth_Token进行访问令牌。我会再次生成一个随机唯一的字符串,并将其存储在用户身上,为此特定的消费者。

现在我的api将接受尝试抓住使用它的用户的信息的方法的Access_Token。

我想知道我是否正确理解了。如果是这种情况,OAuth 2.0规范似乎非常微不足道。还为什么我们必须用access_token交换oauth_token?我有自己的想法,但如果有人可以帮助澄清这一点,我会很感激。

我真的很感激你的反馈,因为我不希望继续浪费时间,当它完全错了时毫无意义。

感谢

有帮助吗?

解决方案

实际上,协议流程图对于可视化OAuth 2的可视化规范是非常有用的,但只有一些部分地区的工作。正如我刚才实现了一个客户端的oauth 2库,我可以验证您是否在正确的轨道上。但这是一个捕获:

oauth_token属于您的客户端应用程序(即桌面Facebook阅读器),其验证您的应用程序(就像ID)。您提交这是为了返回Access_Token,它是特定于您的应用程序并登录的用户,允许您访问与用户相关的受限资源。

是一个基本的桌面应用程序身份验证进程(从: http://developers.gigya。 com / 020_developer_guide / 85_rest / oauth2

实际上,流量DigRam与时间轴(从上到下,取自: http://www.ibm.com/developerworks/web/library/wa-oauthsupport/?ca=drs-

最后完整过程是:(从

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top