OAuth2.0授权模式
本篇文章介绍OAuth的经典授权模式, 授权码模式
所谓授权无非就是授权与被授权,被授权方通过请求得到授权方的同意,并赋予某用权力,这个过程就是授权。
那作为授权码就更加简单,第三方直接发起授权请求并希望能够得到某种我需要的权力。授权方根据第三方的需求提供相应的授权权限,最后生成一串付有权限的码来实现授权,这个码就是所谓的授权码。
什么是OAuth?
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。
OAuth的作用就是让"客户端"安全可控地获取"用户"的授权,与"服务商提供商"进行互动。
具体场景
对于授权码模式现在使用的场景特别多,这里就用QQ登录第三方服务器做一个讲解。
我们在访问第三方网站或者应用程序的时候会有一个登录的操作,但是我们没有帐号而且不想注册怎么办?别担心现在有QQ第三方进行登录
在进行登录的时候,会输入QQ帐号或者密码,细心的朋友发现这根本就不是我登录那个网站的页面。
其实这个界面就是QQ登录界面,输入帐号和密码通过QQ登录,但是QQ是不会直接把用户的帐号和密码给第三方,登录成功是返回一个授权码,这就是我们所讲的授权,他的具体流程如下。
- 点击QQ登录小图标,客户端重定向地址指向QQ授权登录
- 重定向地址的时候会传递一个参数callback,这个参数就是授权成功需要重定向返回跳转的地址。
- 用户输入帐号密码登录QQ服务器
- QQ登录成功返回授权码给第三方服务器(第三方服务器保存授权码到数据库)
- 服务器返回重定向第三方界面(callback参数)
- 最后实现QQ授权登录
(当时我只记了这些)
废话有点多,还望大佬多多指教,以后更加努力。