JWT和OAuth2.0的理解

Oauth2和jwt是完全不同的两种东西,一个是授权认证的框架,另一种则是认证验证的方式方法(轻量级概念)
无论是哪种方式,我们都应该遵循HTTP的规范,把认证信息放在http请求头的 Authorization 字段中

JWT

详情

OAuth2.0

https://blog.csdn.net/a595077052/article/details/118996218
分发系统中的账号绑定第三方应用的登录过程就是OAuth2.0实现的,通过认证授权得到的access_token可以进行分发操作。

Authorization Code Flow 授权码模式

在这里插入图片描述
1、当用户(Resource Owner)访问第三方应用(Client)的时候,第三方应用会把用户带到认证服务器(Authorization Server)上去,主要请求的地址是 /authorize API,其中的请求方式如下所示。
例:微博的authUrl:

https://api.weibo.com/oauth2/authorize?
response_type=code
&client_id=%s
&redirect_uri=%s
&state=%s

client_id:第三方应用的App ID
response_type=code:告诉认证服务器,我要走Authorization Code Flow。
redirect_uri:跳转回第三方应用的URL
scope:相关的权限
state:是一个随机的字符串,主要用于防CSRF攻击。
2、当Authorization Server收到这个URL请求后,其会通过 client_id来检查 redirect_uri和 scope是否合法,如果合法,则弹出一个页面,让用户授权(如果用户没有登录,则先让用户登录,登录完成后,出现授权访问页面)。
3、当用户授权同意访问以后,Authorization Server 会跳转回 Client ,并以其中加入一个 Authorization Code

/deliver/fenfa/oauth/douyin/rongmei/callback?
code=1e6a48c8eba96549w5h3d9T8anKkuK993Fz5
&state=232279695392013328_1_4A0ABDE163AB83F24F2CEA99239A6FBFEBAAEFEFADD12B947FE534D638694D926167A50C12B8390B

URL的组成是redirect_uri + code + state
state的值与第一步是一致的
4、接下来,Client 就可以使用 Authorization Code 获得 Access Token。其需要向 Authorization Server 发出如下请求。

code=Yzk5ZDczMzRlNDEwYlrEqdFSBzjqfTG
&grant_type=code
&redirect_uri=https%3A%2F%2Fexample-client.com%2Fcallback%2F
&client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&client_secret=JqQX2PNo9bpM0uEihUPzyrh

5、没问题的话,Authorization Code 会返回认证信息

{
  "access_token": "iJKV1QiLCJhbGciOiJSUzI1NiI",
  "refresh_token": "1KaPlrEqdFSBzjqfTGAMxZGU",
  "token_type": "bearer",
  "expires": 3600,
  "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciO.eyJhdWQiOiIyZDRkM..."
}

access_token:令牌
refresh_token:用来刷新access_token
expires:过期时间
6、接下来就可以用access_token请求有权限访问的资源了
欧耶!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Security是一个功能强大的安全框架,用于在Java应用程序中实现身份验证和授权。JWT(JSON Web Token)是一种轻量级的身份验证和授权机制,其中包含了验证用户身份的加密信息。OAuth 2.0是一种开放标准的授权协议,它允许用户授权第三方应用程序访问受保护的资源。 Spring Security可以与JWT和OAuth 2.0结合使用,以提供更强大的身份验证和授权功能。使用JWT作为身份验证机制,可以在用户登录成功后生成一个JWT令牌,并将其加入到HTTP请求的Header中。服务端可以使用JWT中的信息,如用户名和权限,对请求进行验证,确保用户的身份是有效的。而OAuth 2.0允许用户通过授权服务器颁发的token来访问受保护的资源,Spring Security可以集成OAuth 2.0来实现授权验证的逻辑。 通过使用Spring Security结合JWT和OAuth 2.0,可以轻松实现可伸缩、安全的身份验证和授权机制。开发人员可以使用Spring Security提供的各种功能,如用户认证、角色授权和访问控制,来保护应用程序中的敏感操作和数据。此外,使用JWT和OAuth 2.0,可以实现无状态的API身份验证和授权,提高系统的可扩展性和性能。 总之,Spring Security与JWT和OAuth 2.0的结合为应用程序提供了安全、可靠的身份验证和授权机制。开发人员可以根据具体的需求配置和使用这些功能,以保护应用程序的安全和数据的机密性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值