Oauth2可用于授权和身份验证吗?
据我了解,Oauth2 授权消费者应用程序从提供商(例如Facebook,Google,Twitter等)访问用户信息。
但Oauth2可以用于验证用户吗?例如,假设我们有一个由本机移动前端和后端api组成的应用程序 - 可以使用Oauth2在Facebook等提供商的授权之上有效并维护身份验证 ,Google,Twitter等?
如果是,怎么样?例如,我们是否持久化auth令牌并将其用作会话令牌?或者验证用户是否需要OpenId Connect给消费者"应用程序通过第三方提供商?
答案 0 :(得分:4)
符合规范的表单中的OAuth 2.0不能用于用户身份验证。话虽如此,可以开发OAuth 2.0的扩展,允许用户身份验证。一些提供商,例如Facebook,已经做到了这一点。
但是还有一个OAuth 2.0的标准化扩展,允许用户身份验证,称为OpenID Connect。如果您想以标准化方式通过第三方提供商向消费者应用程序验证用户,则确实需要OpenID Connect。 OpenID Connect的令牌格式是JWT,令牌本身称为id_token
。您可以使用id_token
作为会话令牌。
有关OAuth 2.0和用户身份验证的详尽文章,请参阅http://oauth.net/articles/authentication/