关于oauth2.0:手工方式执行OAuth20流程

31次阅读

共计 1242 个字符,预计需要花费 4 分钟才能阅读完成。

后面一篇文章钻研了 OAuth2.0 标准的工作原理,纸上得来终觉浅,明天就以纯手工的形式跑下整个流程。

本示例以 GitHub 提供的 OAuth2.0 受权服务来进行试验,所以你必须先有一个 GitHub 账号,而且没有被墙,试验的步骤如下:

  1. 注册 OAuth 客户端
  2. 获取Authorization Code
  3. 获取Access Token
  4. 应用 Access Token 拜访资源

注册 OAuth 客户端

先登录 GitHub,顺次拜访 Settings->Developer settings->OAuth Apps,点击 New OAuth App
注册页面

注册后果

注册次要关注三个参数:

  1. Authorization callback URL: 获取 Authorization Code 后的跳转地址
  2. Client ID:注册的客户端的惟一标识
  3. 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
  1. 拜访后,先跳转到登录界面进行用户认证

  1. 认证后,间接进入受权确认页面

  1. 用户受权后,跳转到 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 的表单。

正文完
 0