IT新手之路关于oauth2.0的简单理解
Posted 花粉帮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IT新手之路关于oauth2.0的简单理解相关的知识,希望对你有一定的参考价值。
oauth2.0 是什么?
oauth2.0 的作用
1.公司内部sso解决方案,分资源服务器,客户端,h5浏览器,认证服务器,公司认证服务器统一登录,每个资源服务器自动登录,oauth2.0只是其中的一部分解决方案。
oauth2.0的介绍
1.授权码模式(authorization code)
2.简化模式(implicit)
3.密码模式(resource owner password credentials)
4.客户端模式(client credentials)
1.授权码模式
https://open.weixin.qq.com/connect/oauth2/authorize?
response_type=code&redirect_uri=**&appid=**&scope=**&state=**
步骤如下:
(1)用户访问资源服务器,后者将前者导向认证服务器;
(3)回调到资源服务器,资源服务器获取code,走codeToToken模式;
(4)拿到token令牌,继续跟认证服务器交互获取userinfo,此时此刻已经获取用户信息。
简化模式(implicit grant type),直接在浏览器中向认证服务器申请令牌,跳过了"授权码"这个步骤,令牌对访问者是可见的,且客户端不需要认证。也就是说浏览器上可以直接查看token令牌,常见于跟第三方推广机构合作,合作方推广范围获取我方token令牌
简化模式有两种:
(1)简化版,就是response_type=token&redirect_uri=***,请求认证服务器,认证服务器直接回调redirect_uri,并带上token令牌;
(2)复杂版,回调的时候带上是Hash部分包含了访问令牌,需要请求资源服务器,资源服务器返回一个网页,其中包含的代码可以获取Hash值中的令牌。通过代码提取出真正的令牌。
用户向客户端提供自己的用户名和密码。客户端使用这些信息,向"服务商提供商"索要授权。我们常见的app,直接用户密码登录,直接跟认证服务器交互,步骤也很简单:
4.客户端模式
在这种模式中,用户直接向客户端注册,客户端以自己的名义要求"服务提供商"提供服务,实际上就是用户将信息交于客户端,客户端自身跟认证服务器交互,请求方式如下:
以上是关于IT新手之路关于oauth2.0的简单理解的主要内容,如果未能解决你的问题,请参考以下文章
Web 三方登录实现(基于OAuth2.0,包含Github和QQ登录)