RiverRay
119 天前
#0 快递员请求保安允许他进入小区
⬇️
第三方应用请求用户授权:
应用程序向授权服务器(保安)发起授权请求,请求访问用户的资源。
请求的 URL 通常包含 client_id 、redirect_uri 、scope 等参数。
#1
保安打电话给你,确认是否允许快递员进入
⬇️
授权服务器向用户请求授权:
授权服务器将用户重定向到一个登录和授权页面
用户在这个页面上登录并同意授权,授权服务器验证用户身份并获取用户同意
#2
保安给快递员一张临时通行证,允许他进入公共楼层
⬇️
授权服务器发放授权码:
用户同意授权后,授权服务器生成并返回一个授权码给第三方应用
授权码是一个临时的凭证,用于在稍后阶段交换访问令牌
#3
快递员使用通行证进入小区
⬇️
应用程序使用授权码请求访问令牌:
应用程序将授权码发送到授权服务器的令牌端点,换取访问令牌
请求中包含 grant_type 、code 、redirect_uri 、client_id 和 client_secret 等参数
#4
快递员被限制只能进入公共楼层。
⬇️
访问令牌的权限范围( scope ):
访问令牌中包含 scope ,定义了应用程序可以访问的资源和操作范围
例如,scope=read 表示应用程序只能读取资源,不能进行修改
#5
电子钥匙过期,保安第二次发通行证
⬇️
刷新令牌机制:
访问令牌有有效期( expires_in ),到期后需要使用刷新令牌来获取新的访问令牌
应用程序使用刷新令牌向授权服务器请求新的访问令牌,不需要再次请求用户授权