Facebook、Twitter和LinkedIn的OAuth Token有何不同?

5
这可能是一个非常愚蠢的问题,但我却找不到一个快速简洁的答案。所以我们来看看...
我正在实现 Facebook、Twitter 和 LinkedIn 的帖子/更新/共享功能,在一个 C#/MVC4 web 应用程序中。我在每个社交网络上创建了适当的应用程序,Web 应用程序的用户可以通过各自网络的标准 OAuth 对话框进行授权,从而能够在单击一下的情况下向几个/所有网络发送个人资料更新。我已经完成了这个功能的开发,一切都按计划工作;现在我正在重构代码和相关的 db schema(用于存储必要的 OAuth 令牌,用于应用程序和用户,从特定网络的 API 获取的扩展用户信息,单个帖子指标等),这就是让我困惑的地方。
没有进一步的拖延...问题如下:
1. 关于应用程序的 OAuth 令牌:为什么 Facebook 只提供/需要“应用程序密码”,而 Twitter 和 LinkedIn 都提供/需要“使用者密钥”和“使用者密码”?
2. 关于应用程序用户的 OAuth 令牌:为什么 Facebook 只提供/需要“访问令牌”,而 Twitter 和 LinkedIn 都提供/需要“访问令牌”和“访问令牌密码”?
这是否只是因为 Facebook(2.0 草案 12)与 Twitter 和 LinkedIn(1.0a)实施的 OAuth 协议版本不同,还是完全有其他原因?

2
是的,OAuth 2.0 和 OAuth 1.0 之间的区别当然存在。Twitter 和 Linkedin 也使用了 2.0 版本。 - Security Hound
1个回答

1

以下是您的问题答案:

1.在注册Facebook开发者应用程序时,Facebook确实提供应用程序密钥和应用程序秘密。

2.Facebook使用OAuth 2.0,因此它只提供访问令牌和刷新令牌(仅在指定范围时请求离线访问时提供刷新令牌),访问令牌的有效期为1小时,之后它将失效,您需要刷新它或获取新的访问令牌。

这种差异是由于OAuth协议版本OAuth 1.0 / 1.0a和OAuth 2.0的变化造成的。


1
offline_access已被弃用。不过您可以获取一个为期三个月的令牌。 - ThiefMaster
是的,更多信息请访问http://developers.facebook.com/roadmap/offline-access-removal/。 - Cris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接