本文主要是介绍初识OAuth2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
解决第三方授权问题
主要涉及到
资源拥有者(RO):用户
客户端(应用)(C):用户正在操作使用的业务网站
授权服务器(AS):给用户授予数据访问权限的服务
资源服务器(RS):目的资源服务
实例
小明要使用GitHub账号授权登录chrome浏览器
其中小明为资源所有者,chrome浏览器为客户端,授权服务器为github授权服务器,资源服务器为GitHub资源服务器(用来返回小明在github中的头像、名称等)。
大致交互流程如下
客户端要访问某资源,需要用户授权允许访问,
用户允许访问后,
客户端到授权服务器请求相关资源访问通行证(access_token),
请求到后再到资源服务器请求所需资源。
具体实现业务场景逻辑是在上述流程中做详细细化或删减,分为如下4种
1.授权码
RO授权C访问相关权限后,C拼接自己的相关数据信息和鉴权方式(response_type=code)信息访问AS,AS验证并返回相关code等信息,客户端通过code进一步访问AS,AS返回通信证access_token.
2.隐式许可
相比方式1,省去了code的请求验证流程
RO授权C访问相关权限后,C拼接自己的相关数据信息和鉴权方式(response_type=token)信息访问AS,AS返回通信证access_token.
3.资源所有者密码定凭据
C将RO的用户名密码直接访问AS获取access_token
4.客户端凭据
C通过自己的特殊身份直接请求AS获取access_token
好文链接:http://www.cnblogs.com/linianhui/p/oauth2-authorization.html
这篇关于初识OAuth2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!