LINUX DO Connect 手扎--POSTMAN调用方式

什么是 Oauth 这篇文章并没有讲解,可以看我下面的参考文章。这篇文章主要是怎么从头到尾的获取用户信息。

一、申请应用接入

访问 https://connect.linux.do/ ,选择 应用接入 菜单。点击 申请接入

等上面填写好点击保存之后,就能看到下面的信息了

二、获取 code

拿到上面接入信息中的 Client ID ,填入下面的地址中将下面的地址输入到 浏览器 中。

https://connect.linux.do/oauth2/authorize?response_type=code&client_id=【这里是你自己的 Client ID】&state=【这里是你自己生成的】

示例:https://connect.linux.do/oauth2/authorize?response_type=code&client_id=7pOMIPsrncomeAvUd107DXZmdmBUAxXO&state=20260222

通过浏览器访问后会展示上面的内容,点击 允许 之后就可以获得下面的链接。

http://localhost/auth/linux-do/callback?code=3zlKcLQhE3ZDiCqRaMphzl2lX2dVp7eT&state=20260222

拿到这个链接中的 code 后面需要用。这个 code 只能使用一次,如果使用了就要在获取一次。

三、获取 access_token

这里开始使用 postman 工具。

这里选择的 Type 是 Basic Auth ,UserName Password 填入刚才申请之后的 Client ID 、 Client Secret

grant_type: authorization_code 这是固定的

code: 刚才获取 Code 那一步得到的

redirect_uri: 是你后端获取信息的 url

点击 send 之后可以看到 access_token ,这个后面有用到

四、获取用户信息 User Endpoint

这里还是使用 postman

这里的 Type 选择 Bearer TokenToken 中填写上一步获取的 access_token 点击 Send

就可以获取需要的内容了

五、刷新 access_token

access_token 3600 秒后就需要重新再来一遍这个流程太麻烦了,所幸的是我们还能刷新这个 token。

在获取 access_token 的时候它下面还有一个返回参数没有用到 refresh_token ,我们可以使用这个参数来实现刷新 access_token

点击 send 之后

所幸我们又有了新的 token

我把上面使用过的链接和参数导出成 curl 格式了,你们跟着这个教程测试的时候可以使用导入即可

  • 获取 access_token
curl --location 'https://connect.linux.do/oauth2/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic N3BPTUlQc3JuY29tZUF2VWQxMDdEWFptZG1CVUF4WE86QWJQYWZMZ1g3bkcyUXNuRDBLYUFnNVVXanphR2lLS1c=' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'code=CzbcUmrv7Bb3kXm3dTigDG7VY1GDEnPx' \
--data-urlencode 'redirect_uri=http://localhost:80/auth/linux-do/callback'
  • 获取用户信息
curl --location 'https://connect.linux.do/api/user' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjBXYjZSZ1ByU2hnIiwidHlwIjoiSldUIn0.eyJpc3MiOiJodHRwczovL2Nvbm5lY3QubGludXguZG8vIiwic3ViIjoiMzM2ODciLCJhdWQiOlsiaHR0cHM6Ly9jb25uZWN0LmxpbnV4LmRvL2FwaSIsIjdwT01JUHNybmNvbWVBdlVkMTA3RFhabWRtQlVBeFhPIl0sImV4cCI6MTc3MTc0ODgyMiwibmJmIj想oxNzcxNzQ1MjIyLCJpYXQiOjE3NzE3NDUyMjIsImF6cCI6IjdwT01JUHNybmNvbWVBdlVkMTA3RFhabWRtQlVBeFhPIn0.r8f37u5moRxpCWW6AbIkRCNTaYqgXaKcxmgSwDdwRRav4I2qwNheCInh7cmcYoZBGaVwR2YYJI0cy8HlEiiIgZCQhaSIu0aWvhd9YNmG8gmTTnTGtj52QtqupXZk4W3-T2xZ0r1uTMjIkOE6sn1konPHWo0LrwsuflNYXV5pmZFGfI7bHUweo_X_iAXmHUGlbB1kF9bchKAiOv0QzZZkOOAmTrd-i3k4cDn0lAzyx5nmeMon2ZcUNgYQ5C6MM8j4ytlqculKxnSIWmr1QryiQ0Tb2EeGDKAOgOEPotpL0ZbJCuwd5fSFvxy2N8d4KsjJ00rcMiq1SL9Up2RCuafQbg'
  • 刷新 access_token
curl --location 'https://connect.linux.do/oauth2/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Basic N3BPTUlQc3JuY29tZUF2VWQxMDdEWFptZG1CVUF4WE86QWJQYWZMZ1g3bkcyUXNuRDBLYUFnNVVXanphR2lLS1c=' \
--data-urlencode 'grant_type=refresh_token' \
--data-urlencode 'refresh_token=SlM33RV5HLuhlG1hu7aYF8d0m20nH8MPehdkvaqV'

参考资料:

[1] 让我们来共享论坛用户数据

[2] 小白也能懂的 linuxdo oauth2 快速上手

[3] LINUX DO Connect Docs

9 个赞

感谢佬友分享 :folded_hands:

1 个赞

感谢分享, 挺仔细

9 个赞

前排学习

1 个赞

这么强!

1 个赞

ip 不知道是不是被屏蔽,昨天还可以。。今天都不行了

谢谢 很详细 刚好需要用到这个connet 到时候接到我的学术期刊网站去 这样大家都能方便的发抽象论文了hhhh