前言: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是否被修改过,以此来校验是否安全。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...