OAuth 2.0 与 JWT
Posted
技术标签:
【中文标题】OAuth 2.0 与 JWT【英文标题】:OAuth 2.0 vs JWT 【发布时间】:2016-12-26 14:41:43 【问题描述】:我有一个有多个服务 api 的 web 应用程序。现在,目前我已经使用 JWT 令牌对用户进行了身份验证,该令牌存储了用户的 id,然后我可以在令牌的帮助下访问与该用户相关的资源。
最近我也想通过社交媒体集成登录。所以我想问一下我可以只使用 OAuth 2.0 来登录社交媒体吗?有没有办法混合这两种方式。或者我必须用 OAuth 替换我的 JWT 身份验证。 我听说 OAuth 有点复杂且耗时。
我的门户网站后端同时使用 php 和 Django。 API 是通过 Django 平台提供的。
【问题讨论】:
【参考方案1】:所以我想问一下,我可以只使用 OAuth 2.0 来登录社交媒体吗
是的。
OAuth 2.0 授权授予流程将允许您确认该用户是否真的是他们在该社交媒体网站上所说的那个人(例如,我是 theuser@gmail.com,我可以通过让您成功调用来证明这一点个人资料 API 并检索我的电子邮件)。
一旦您使用 OAuth 2.0 对用户进行了身份验证,您就可以像当前一样配置 JWT 令牌。
【讨论】:
OAuth 2.0 是授权规范,但不是身份验证规范。为此,请在 OAuth 2.0 之上使用 OpenID Connect。以上是关于OAuth 2.0 与 JWT的主要内容,如果未能解决你的问题,请参考以下文章
OAuth 2.0 范围参数与 OAuth 2.0 JWT access_token 范围声明
Oauth 2.0 配置与 Spring Security 冲突
Spring Security 5 OAuth 2.0 ResourceServer 如何与 AuthorizationServer 通信?