用于授权和身份验证的 Oauth2?

Ari*_*Ari 3 django oauth-2.0 google-oauth openid-connect

Oauth2 可以用于授权认证吗?

据我了解,Oauth2授权消费者应用程序从提供商(例如 Facebook、Google、Twitter 等)访问用户信息。

但是可以使用 Oauth2 对用户进行身份验证吗?例如,假设我们有一个由原生移动前端和后端 api 组成的应用程序 - Oauth2 是否可用于在来自 Facebook、Google、Twitter 等提供商的授权之上验证和维护身份验证

如果是,如何?例如,我们是否将 auth 令牌持久化并将其用作会话令牌?还是需要 OpenId Connect 才能通过第三方提供商向“消费者”应用程序验证用户身份

Han*_* Z. 5

符合规范的 OAuth 2.0 不能用于用户身份验证。话虽如此,可以开发 OAuth 2.0 的扩展,以允许用户身份验证。一些提供商,例如 Facebook,已经做到了这一点。

但是还有一个 OAuth 2.0 的标准化扩展允许用户身份验证,称为 OpenID Connect。如果您想以标准化的方式通过 3rd 方提供商对消费者应用程序的用户进行身份验证,则确实需要 OpenID Connect 。OpenID Connect 的令牌格式是 JWT,令牌本身称为id_token. 您可以将id_token用作会话令牌。

有关 OAuth 2.0 和用户身份验证的大量文章,请参阅http://oauth.net/articles/authentication/