后面一篇文章钻研了OAuth2.0标准的工作原理,纸上得来终觉浅,明天就以纯手工的形式跑下整个流程。
本示例以GitHub提供的OAuth2.0受权服务来进行试验,所以你必须先有一个GitHub账号,而且没有被墙,试验的步骤如下:
- 注册OAuth客户端
- 获取
Authorization Code
- 获取
Access Token
- 应用
Access Token
拜访资源
注册OAuth客户端
先登录GitHub,顺次拜访 Settings->Developer settings->OAuth Apps,点击 New OAuth App
注册页面
注册后果
注册次要关注三个参数:
- Authorization callback URL: 获取
Authorization Code
后的跳转地址 - Client ID:注册的客户端的惟一标识
- Client Secret:注册客户端的Secret信息
获取Authorization Code
获取Authorization Code为GET申请,能够间接拼装URL后在浏览器间接拜访,地址如下:
https://github.com/login/oauth/authorize?client_id=9b4cxxxxxxx60b98cd21&redirect_uri=http://127.0.0.1:8000/oauth
- 拜访后,先跳转到登录界面进行用户认证
- 认证后,间接进入受权确认页面
- 用户受权后,跳转到redirect_uri地址
http://127.0.0.1:8000/oauth?code=ccxxx92a0cef2c024dd2
注:这个地址不肯定须要可拜访,间接跳404也能够,次要是要能获取这个code字段。
获取Access Token
应用上述个步骤获取的code,Client ID,Client Secret,因为这个是Post申请,所以须要借助Postman来发送(不过我测试了下,浏览器间接GET拜访也能够,会把返回数据当文件下载)。
获取Access Token的地址和参数如下:
地址:https://github.com/login/oauth/access_token参数:client_id=xxx&client_secret=xxx&code=xxx
Postman截图如下:
留神:基于设计平安,每个code只能申请一次Access Token,应用后就生效了。
应用Access Token拜访资源
以获取用户信息为例,获取用户信息URL:
https://api.github.com/user
在申请头中减少Authorization
字段,值为Bearer access_token_value
Postman截图如下:
以上就是简略的通过OAuth2.0协定拜访GitHub资源的过程,这个过程还是比较顺利的。
另外在应用过程中,发现Postman曾经集成了OAuth2.0的受权过程,在申请的Authorization页签中抉择OAuth2.0,软件提供了一个填写Get New Access Token的表单。