oauth-2.0 - 无法重复有关如何在 Postman 上获取 OAuth2.0 访问令牌的步骤
问题描述
在 Postman 上,我可以通过提供回调 URL、身份验证 URL 和客户端 ID 来获取 OAuth2.0 的新访问令牌。
我想在 JMeter 上分解这个任务,因为我在那里找不到这个函数。根据我的理解,分为authenticate->authorize->callback。
- 认证
- 网址 = https://xxxxx/login
- 结果 = 授权 URL
- 授权
- URL = https://xxxxx/oauth/authorize?client_id=mmm&redirect_uri=https://yyyyy/auth/callback&response_type=code
- 结果 = 代码(例如 zzz)
- 打回来
- URL = https://yyyyy/auth/callback?code=zzz
- 结果 = 令牌
当我在 JMeter 上使用HTTP(S) 测试脚本记录器时,我得到了上面提到的三个操作。当我重新运行它们时,它在Authenticate部分告诉我这个错误:<oauth><error_description>Full authentication is required to access this resource</error_description><error>unauthorized</error></oauth>
.
为了确保它与我使用的程序无关,我在 Postman 上做了,也发现了这个错误。
我想知道如何将OAuth2.0 Get New Access Token功能分解为基本 API 设置,以便在 Postman 或 JMeter 上获取访问令牌。
解决方案
不要比较这些工具:
Postman 是一个Electron 应用程序,它基本上是一个高度定制的Chromium网络浏览器 + NodeJS
根据JMeter主页
JMeter 不是浏览器,它在协议级别工作。就 Web 服务和远程服务而言,JMeter 看起来像一个浏览器(或者更确切地说,是多个浏览器);但是 JMeter 并不执行浏览器支持的所有操作。特别是,JMeter 不执行 HTML 页面中的 Javascript。它也不像浏览器那样呈现 HTML 页面(可以将响应视为 HTML 等,但时间不包含在任何示例中,并且一次只显示一个线程中的一个示例)。
如果您可以使用 Postman 获取令牌,您只需将HTTP 标头管理器添加到您的 JMeter 测试计划并将其配置为发送Authorization标头,其值为Bearer YOUR_TOKEN_FROM_POSTMAN
并且 JMeter 应该让您进入。
推荐阅读
- php - 让所有顶级父母建立多对多关系
- c# - Selenium 添加附加功能无法设置浏览器版本(.NET Framework)
- javascript - 如何在本地存储中保存动态创建的元素
- discord.py-rewrite - 有没有办法检查用户是否在 discord.py 中具有角色或权限
- sql - 获取postgreSQL中单词的词频排名并按标签过滤
- excel - Excel:建立用于相关函数的动态范围
- ios - UICollectionView 未显示在 UITableView 标题中
- arrays - 如何按 laravel 数组中的键分组?
- javascript - 如何使输入框只接受按键事件浮动
- c# - EF core 5 - Include 中使用的 Lambda 表达式无效