脸书和推特/领英之间的OAuth令牌差异



这可能是一个非常愚蠢的问题,但我一生都找不到一个快速简洁的答案。所以我们开始吧。。。

我目前正在C#/MVC4网络应用程序中实现Facebook、Twitter和LinkedIn发布/更新/共享功能。我在每个社交网络上创建了适当的应用程序,网络应用程序的用户可以授权(通过每个网络的标准OAuth对话),这样他们就可以一键向几个/所有网络发送配置文件更新。我已经完成了这个功能的开发,一切都按设计进行;我现在正处于重构代码和相关数据库模式的阶段(用于存储应用程序和用户的必要OAuth令牌、从特定网络的API提取的扩展用户信息、个人帖子度量等),这正是我头疼的地方。

不再再见。。。问题:

  1. 关于应用程序的OAuth令牌:为什么Facebook只提供/要求"应用程序密钥",而Twitter和LinkedIn都提供/要求同时提供"消费者密钥"one_answers"消费者秘密"?

  2. 关于应用程序用户的OAuth令牌:为什么Facebook只提供/要求"访问令牌",而Twitter和LinkedIn都提供/要求同时提供"访问令牌"one_answers"访问令牌机密"?

这只是由于Facebook(2.0草案12)与Twitter和LinkedIn(1.0a)实现的OAuth协议版本的差异,还是完全是其他原因?

以下是您的问题答案,

1.Facebook在注册应用程序为Facebook开发者时同时提供应用程序密钥和应用程序机密。

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

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

最新更新