使用Facebook访问令牌作为OAuth2.0中的资源所有者凭据

时间:2012-05-04 21:56:13

标签: language-agnostic oauth-2.0 oauth-provider

OAuth 2.0规范定义了Resource Owner Password Credentials Grant Type,它允许资源所有者密码凭证(即用户名和密码)直接用作授权授权来获取访问令牌。

我想允许用户在客户端上“通过Facebook登录”,而不是直接提供凭据。然后,客户端可以将用户的Facebook访问令牌交换为授权服务器的访问令牌。这个方案是否适合OAuth2的框架?

1 个答案:

答案 0 :(得分:2)

  

然后,客户端可以将用户的Facebook访问令牌交换为授权服务器的访问令牌。

这是否意味着你有2个授权服务器(Facebook和另一个 - 你的私人服务器)?如果是 - 您正在滥用OAuth,而应使用授权代码授予方案。

在OAuth 2.0规范(v25)的图5中,您可以找到工作流程定义:

  
      
  1. 资源所有者为客户提供其用户名和密码。

  2.   
  3. 客户端从授权服务器的令牌请求访问令牌   端点,包括从资源所有者收到的凭据。什么时候   在发出请求时,客户端使用授权服务器进行身份验证。

  4.   
  5. 授权服务器对客户端进行身份验证并验证资源所有者   凭证,如果有效,则发出访问令牌。

  6.   

这引自Facebook http://developers.facebook.com/docs/guides/web/

  

要将用户登录到您的网站,需要做三件事。首先,Facebook需要对用户进行身份验证。这可以确保用户就是他们所说的人。其次,Facebook需要验证您的网站。这可确保用户将信息提供给您的网站,而不是其他人。最后,用户必须明确授权您的网站访问其信息。这可确保用户确切知道他们向您的网站披露了哪些数据。

在这两个地方,您只有一个授权服务器 - 在您的情况下 - Facebook。