OAuth2.0授权码模式
2019-07-27 15:17
337 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u014427391/article/details/97504088
最近在学习Oauth2.0,随便记录一下从优质博客http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 学习到的知识
OAuth2.0简单说就是一种授权的协议,OAuth2.0在客户端与服务提供商之间,设置了一个授权层(authorization layer)。客户端不能直接登录服务提供商,只能登录授权层,以此将用户与客户端区分开来。然后客户端在登录时候不使用账号密码,而是使用会自动过期的令牌token
定义比较难理解,可以举个例子,假如我们要登录豆瓣网,可以你是没账号的,又不想注册,然后这时候可以用QQ登录,登录时候会转跳到QQ登录页面,这个就是QQ就是一个认证服务器,豆瓣是服务提供商,也可以说是资源服务器
-
(A)打开客户端,重定向,请求给予授权。
-
(B)用户开始给予客户端授权
-
(C)客户端使用获得的授权,向认证服务器申请令牌。
-
(D)客户端拿授权码去认证服务器认证,确认提供同意发放令牌。
-
(E)认证通过,客户端使用令牌,向资源服务器申请获取资源。
-
(F)资源服务器确认令牌无误,同意向客户端开放资源。
OAuth2.0授权方式:
- 授权码模式(authorization code)
- 简化模式(implicit)
- 密码模式(resource owner password credentials)
- 客户端模式(client credentials)
一般认证授权过程需要的参数:
- response_type:授权类型,必选项
- client_id:客户端的ID,必选项
- redirect_uri:重定向URI,可选项
- scope:申请的权限范围,可选项
- state:客户端的当前状态,可以指定任意值,认证服务器会原封不动地返回这个值
其实总结一下,Oauth2.0用授权码方式,无非就是用户访问客户端就直接重定向到认证服务器,然后输入账号密码等等通过验证后,认证服务器会重定向到redirect_uri并将授权码附在url上,然后再拿授权码去认证,认证通过发放令牌,登录成功
参考资料:
http://www.rfcreader.com/#rfc6749_line1019
http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
相关文章推荐
- OAuth2.0学习(1-7)授权方式4-客户端模式(Client Credentials Grant)
- OAuth2.0详解(授权模式篇)
- Oauth2.0认证---授权码模式
- Oauth2.0的四种授权模式介绍
- Spring Boot整合oauth2.0搭建统一授权服务(密码模式)
- OAuth2.0的四种授权模式
- oauth2.0授权码模式详解
- 实现OAuth2.0服务端【授权码模式(Authorization Code)】
- OAuth2.0的四种授权模式
- 实现OAuth2.0服务端【授权码模式(Authorization Code)】
- OAuth2.0学习(1-4)授权方式1-授权码模式(authorization code)
- OAuth2.0学习(1-5)授权方式2-简化模式(implicit grant type)
- OAuth2.0学习(1-6)授权方式3-密码模式(Resource Owner Password Credentials Grant)
- ASP.NET Core实现OAuth2.0的AuthorizationCode模式
- 通过OAuth2.0方式弹出授权页面获得用户基本信息
- 调用微信OAuth2.0网页授权接口实现用户信息的绑定
- 基于OAUTH2.0的授权操作
- 微信公众平台开发--OAuth2.0网页授权
- OAuth2.0协议 第三方登录 授权
- [转载] OAuth2.0认证和授权原理