oauth2协议

什么是OAUTH2协议:

OAuth2.0是一个开放标准,允许用户授权第三方应用访问他们存储在另外服务提供者上的信息,并且不需要告知第三方他们的用户名和密码。将认证和授权交给第三方担保

首先是几个概念问题:

资源:用户信息,在微信中存储

资源拥有者:用户

认证服务:微信负责认证用户的身份,也负责为客户端颁发令牌

客户端:携带令牌请求微信获取用户信息

授权服务器:负责授权认证担保的服务器,比如微信扫码登录中的微信

第三方服务器:比如微信扫码中需要扫码的网站

总的来说,这一套grant,token的颁发与接收是因为资源拥有者、第三方服务器与授权服务器都可能是不安全的,需要一系列手段来认证

仍以微信简单概述来说授权码模式

1.用户扫码登录,网站向用户申请授权(A)

2.用户同意授权(B)

3.网站获取授权码(B)

4.网站发送授权码给微信服务器(C)

5.微信服务器为网站提供令牌(D)

6.网站携带token向微信资源服务器要用户信息(E)

7.微信资源服务器返回受保护资源,即我们需要的信息(F)

 

2024-10-3 新增:

简化模式:(相对于授权码模式,授权服务器对第三方服务器是信任的)

在授权码模式上进行了简化,微信服务器不再向网站提供授权码,而是直接提供token,少了BC两步骤

为什么要有简化模式:有些应用不具备后端,无法向微信服务器发送请求

 

密码模式:(相对于上述,资源拥有者对第三方服务器是信任的)

这里是资源拥有者直接将用户名密码(比如说直接将微信的账号密码)都提供给第三方,第三方去申请token并返回

资源拥有者对第三方绝对信任的情况下,很少见

 

客户端模式:(资源拥有者,第三方服务器,授权服务器都是相互信任的)

第三方服务器只给授权服务器(微信服务器)一个标志,授权服务器直接返回令牌

posted @   天启A  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示