pig4cloud框架系列五:OAuth2之授权码模式认证

发布时间 2023-10-07 19:22:19作者: MrQuan

前言:OAuth2目前被广泛用于第三方登录场景中,用于鉴权,认证。本文主要简单介绍一下授权码模式认证。

场景:使用微信登录迅雷

一,名词概念

1,第三方应用程序:迅雷

2,服务提供商:微信

3,资源所有者:登录用户

4,认证服务器:微信用来处理认证的服务器

5,资源服务器:微信存放用户生成的资源的服务器,它与认证服务器,可以是同一台服务器,也可以是不同的服务器。

了解了上面的名词,就不难理解,OAuth的作用就是让迅雷安全可控地获取"用户"的授权,从而可以和微信进行交互。

二,认证流程

1,用户打开迅雷选择微信登录,然后迅雷弹出微信授权页面。

2,用户点击确认授权。

3,迅雷使用第2步获得的授权,向微信认证服务器申请令牌。

4,微信服务器对迅雷进行认证之后,确认通过,发放令牌。

5,迅雷带着令牌,向微信资源服务器申请获取资源。

6,微信资源服务器确认令牌无误,同意向迅雷开放用户资源。

三,授权流程图解

 

四,参数说明

  • grant_type:表示使用的授权模式,必选项,此处的值固定为"authorization_code"。
  • code:表示上一步获得的授权码,必选项。
  • redirect_uri:表示重定向URI,必选项,且必须与A步骤中的该参数值保持一致。
  • client_id:表示客户端ID,必选项。
  • state:主要是用于安全校验,在申请授权的时候,迅雷会把随机的state传递给微信,授权确认后, 微信会将授权码还有state返回给迅雷,迅雷则校验state是否被修改过,以此来校验是否安全。