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请求有权限访问的资源了
欧耶!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值