首页 文章

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

提问于
浏览
5

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

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

1 回答

  • 2

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

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

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

    资源所有者为客户端提供其用户名和密码 . 客户端通过包括从资源所有者接收的凭证来请求来自授权服务器的令牌 endpoints 的访问令牌 . 发出请求时,客户端使用授权服务器进行身份验证 . 授权服务器对客户端进行身份验证并验证资源所有者凭据,如果有效则颁发访问令牌 .

    这是来自Facebook http://developers.facebook.com/docs/guides/web/的引用:

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

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

相关问题