Facebook 真的支持 OAuth 2.0 吗?

Posted

技术标签:

【中文标题】Facebook 真的支持 OAuth 2.0 吗?【英文标题】:Does Facebook actually support OAuth 2.0? 【发布时间】:2011-11-28 07:04:47 【问题描述】:

我已经使用外部库在我的应用程序中成功实现了 LinkedIn 和 Twitter Oauth 2.0 授权。但我在使用 Facebook 时遇到了问题。好像有不同的授权流程。

我需要 3 个端点来实现 OAuth:请求令牌 url、访问令牌 url 和授权令牌 url。

LinkedIn 和 Twitter 我有:

REQ_TOKEN_URL="https://api.linkedin.com/uas/oauth/requestToken";
ACCESS_TOKEN_URL="https://api.linkedin.com/uas/oauth/accessToken";
AUTHORIZE_TOKEN_URL="https://api.linkedin.com/uas/oauth/authorize";

REQ_TOKEN_URL="https://api.twitter.com/oauth/request_token";
ACCESS_TOKEN_URL="https://api.twitter.com/oauth/access_token";
AUTHORIZE_TOKEN_URL="https://api.twitter.com/oauth/authorize";

但对于 Facebook 而不是我拥有的请求令牌

OAUTH_FACEBOOK_DIALOG = "https://www.facebook.com/dialog/oauth";

我不确定它是否相等。可能不会,因为它的工作方式与 LinedIn 和 Twitter 的工作方式相同。

在 Facebook 文档中,他们建议首先将用户重定向到“https://www.facebook.com/dialog/oauth”,但在经典 OAuth 2.0 中,我首先必须从 request_token_URL 请求令牌。

所以问题是:Facebook 授权流程实际上不是 OAuth 2.0,我必须使用不同的方法吗?

【问题讨论】:

您提到 Twitter 支持 OAuth 2.0 - 但这里说它不支持...dev.twitter.com/discussions/397 【参考方案1】:

Facebook 实际上完全支持 OAuth 2.0。 Twitter 目前does not 支持 OAuth 2.0。我相信 LinkedIn OAuth 2.0 支持是 still in beta。但是,是的,您需要对不同版本的 OAuth 使用不同的方法。

【讨论】:

以上是关于Facebook 真的支持 OAuth 2.0 吗?的主要内容,如果未能解决你的问题,请参考以下文章

服务帐户的 google OAuth 2.0 是 OAuth 2.0 标准的一部分吗?

Facebook OAuth 2.0“代码”和“令牌”

春天。 REST API 的实现 Oauth.2.0

使用 facebook 登录并使用 oauth 2.0 对 REST api 调用进行身份验证

如何在服务器端完全启用 Facebook OAuth 2.0?

OAuth 2.0 教程