如何在curl命令中发送变量来生成token?

问题描述 投票:0回答:1

这是我正在使用的生成 Bearer Token 的 curl 命令。该命令具有以下变量:$url(base url)、$cid(clientid) 和 $csec(client secret)。我使用了 echo 命令并检查了变量是否存储了正确的值。如果我用它们的存储值替换变量,那么我就可以获取 Bearer Token。

curl --request POST $url/oauth/token -d 'grant_type=client_credentials&client_id=$cid&client_secret=$csec'

运行此命令时出现以下错误:

{"error":"unauthorized","error_description":"Bad credentials"}

我试过使用引号和大括号,但仍然没有成功。 这些是我尝试过的命令。请让我知道任何替代方法。

curl --request POST "$url"/oauth/token -d 'grant_type=client_credentials&client_id="$cid"&client_secret="$csec"' curl --request POST '"$url"'/oauth/token -d 'grant_type=client_credentials&client_id='"$cid"'&client_secret='"$csec"'' curl --request POST {$url}/oauth/token -d 'grant_type=client_credentials&client_id={$cid}&client_secret={$csec}' 

authentication curl post oauth bearer-token
1个回答
0
投票

当您希望扩展变量时,使用双引号将字符串括起来(参见例如Bash 中单引号和双引号的区别):

curl --request POST "$url/oauth/token" \
  -d "grant_type=client_credentials&client_id=$cid&client_secret=$csec"
© www.soinside.com 2019 - 2024. All rights reserved.