gpt4 book ai didi

api - api 测试预请求脚本的新功能 - 使用 OAuth 2.0 Grant Type 'Client Credentials' 自动获取访问 token

转载 作者:行者123 更新时间:2023-12-04 15:54:22 26 4
gpt4 key购买 nike

我已经被困在这个问题上好几天了,翻阅了很多文章,但找不到可以帮助我的脚本。

脚本的基础是在我使用POST 方法之前自动获取授权 token 。

如前所述,在获取此特定 api 的访问 token 时,授权类型为 Client Crentials,手动获取 token 时需要以下字段:-

token 名称授权类型访问 token URL客户端 ID客户端密码范围客户端身份验证

在实际执行 POST 之前,是否有一个简单的脚本可以为我执行此操作,因为手动获取 token 很烦人。

在此先感谢您的帮助。

亲切的问候

只是一个更新,我现在找到了一种实际获取 token 的方法,所以如果您执行以下操作。

  1. 添加新请求
  2. 选择“发布”
  3. 输入接口(interface)地址
  4. 点击“正文”
  5. 点击“x-www-form-urlencoded”
  6. 我输入了以下“ key ”(输入您自己对应的“值”)-“client_id”、“client_secret”、“范围”和“授权类型”
  7. 点击“发送”

这将为您提供 token ,我现在需要找到一种方法来在新请求中提取 token 或找到一种方法将其放入预请求脚本中,以便我能够输入所需的数据“原始”JSON。

如果有人能提供帮助,将不胜感激。

亲切的问候

最佳答案

这对你有帮助吗?或者至少让你更接近你需要的东西?

如果将此脚本添加到 Collection 级别 pre-request script,它将获取 token 并将其设置为 jwt 变量。您可以在主要请求的 Headers 中使用此变量,使用 {{jwt}} 语法 - 此脚本还获取 expiry_in 值来自 token 响应并将其设置为变量。

对于集合中的每个请求,它将运行脚本并检查环境文件中是否有 AccessTokenExpiryjwt 属性,它还会检查查看 token 是否已过期。如果这些陈述中的任何一个为真,它将为您获得另一个 token 。如果没问题,它将使用您设置的内容。

const moment = require('moment')

const getJWT = {
url: `<your token base path>/Auth/connect/token`,
method: 'POST',
header: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: {
mode: 'urlencoded',
urlencoded: [
{key: 'grant_type', value: 'client_credentials'},
{key: 'scope', value: '<scope details>'}
{key: 'client_id', value: 'your creds'}
{key: 'client_secret', value: 'your creds'}
]
}
}

var getToken = true

if (!_.has(pm.environment.toObject(), 'AccessTokenExpiry')
|| !_.has(pm.environment.toObject(), 'jwt')
|| pm.environment.get('AccessTokenExpiry') <= moment().valueOf()) {
} else {
getToken = false
}

if (getToken) {
pm.sendRequest(getJWT, (err, res) => {
if (err === null) {
pm.environment.set('jwt', `Bearer ${res.json().access_token}`)

var expiryDate = moment().add(res.json().expires_in, 's').valueOf()
pm.environment.set('AccessTokenExpiry', expiryDate)
}
})
}

要访问集合级别的元素,如果将鼠标悬停在集合名称上并单击 ... 图标,这将显示菜单选项列表。选择编辑

Access collection level elements

关于api - api 测试预请求脚本的新功能 - 使用 OAuth 2.0 Grant Type 'Client Credentials' 自动获取访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52428130/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com