oauth2.0框架原理理解

oauth2.0框架:一种授权机制,第三方授权,系统产生一个短期的令牌(token)用于登录;

说白了就是

用户登录的accesstoken是由第三方服务器存储的

官方话术:OAuth 2.0是一个业界标准的授权协议,其定义了四种可以适用于各种应用场景的授权交互模式:授权码模式、应用授信模式、用户授信模式、简化模式。其中,授权码模式被广泛应用于第三方互联网开放平台,通过第三方登录是其最常见应用场景之一,比如使用微信、QQ和淘宝账号进行登录。

在OAuth 2.0的协议交互中,有四个角色的定义

  • 资源所有者(Resource Owner):顾名思义,资源的所有者,很多时候其就是我们普通的自然人(但不限于自然人,如某些应用程序也会创建资源),拥有资源的所有权。
  • 资源服务器(Resource Server):保存着受保护的用户资源。
  • 应用程序(Client):准备访问用户资源的应用程序,其可能是一个web应用,或是一个后端web服务应用,或是一个移动端应用,也或是一个桌面可执行程序。
  • 授权服务器(Authorization Server):授权服务器,在获取用户的同意授权后,颁发访问令牌给应用程序,以便其获取用户资源。

oauth2.0框架原理理解_第1张图片

oauth2.0的授权过程

oauth2.0框架原理理解_第2张图片

图片讲解:

1.首先客户端发出未授权访问url请求
2.第三方应用收到后,发起授权请求,定义redirectUrl,重定向到资源服务器
3.资源服务器返回给用户是否授权登录 (eg:微信的登录授权登录页面)
4.客户端确认授权登录,然后将授权登录通过的数据包发送到资源服务器端
5.资源服务器要给你返回一个token (而每一个用户的accessToken都存储在第三方服务器) 为了获取到正确的accessToken,会生成一个code码返回给第三方服务器(这个code码是一个用户对应一个code码,区分每个用户的accessToken)
6.第三方服务器根据这个code码去找你对应的accessToken返回给资源服务器
7.第三方服务器也会根据资源服务器发送的Code码来获取用户信息
8.第三方服务器会对用户信息做一个内部token处理(加密加盐等),之后将生成好的token返回给用户实现登录

你可能感兴趣的:(github,web安全)