来自使用Facebook或Google或任何其他第三方的移动客户端的OAuth2身份验证

时间:2016-04-05 15:48:40

标签: facebook authentication oauth oauth-2.0 google-plus

我已经实施了OAuth2服务器,该服务器目前处理两种授权类型passwordrefresh_token

现在,我需要允许我的客户使用他们的Facebook或Google帐户进行身份验证,但我的问题可能适用于任何类似的流程。

要对Facebook或Google进行身份验证,用户需要授权我的应用程序获取其数据,然后我需要访问Facebook或Google来实际获取它们。

我虽然有两种方法可以做到。

  1. 用户登录其Facebook帐户,授权我的应用程序并检索访问令牌。它将其访问令牌发送到我的服务器,并使用它来获取其数据。

  2. 用户登录其Facebook帐户,授权我的应用程序并获取授权码,它将其发送到我的服务器,我使用其授权码为用户获取访问令牌,并使用它来获取它的数据。

  3. 根据您的经验和/或最佳实践(我无法找到任何关于此类工作流程),最佳选择是什么?

1 个答案:

答案 0 :(得分:1)

在我的工作场所,使用第二种类型(称为显式授权类型)。它优于第一个(称为隐式授权类型。)

显式授权类型优于隐式授权类型的另一个优点是它支持刷新令牌,隐式不支持刷新令牌,这意味着您必须保持访问令牌的非常长的到期时间或用户必须一旦令牌过期,就会进行重定向跳舞。

因此,您可以使用显式授权类型更安全,因为访问令牌的到期时间不必非常高(我相信您在使用Facebook或Google时无法更改访问令牌的到期时间)并且它不会需要重定向的东西(重新登录)