从第一个curl请求中获取JWT令牌并将其传递到下一个curl的POST请求。

3
我有一个 .netcore 2.1 API,我想在其中实现JWT以增强安全性。我计划从cUrl脚本调用API。我的问题是如何使第一个curl脚本获取令牌并将此令牌传递给下一个curl脚本。我希望只编写一个curl脚本来访问jwt令牌,并在下一个post中使用它,因为这将从Mac的登录步骤运行。这种做法可行吗?
更新:我已经拥有了curl脚本。
curl -X PUT "https://localhost:5000/api/token" -H "accept: application/json" -d "Content-Length: 0"


curl -X PUT "http://localhost:5000/api/values" -H "accept: application/json" -H "Authorization: Bearer XXXIAMBEARER" -d "Content-Length: 0"

以下内容是否可行:
这种情况是否可行?
TOKEN=curl -X PUT "https://localhost:5000/api/token" -H "accept: application/json" -d "Content-Length: 0"

curl -X PUT "http://localhost:5000/api/values" -H "accept: application/json" -H "Authorization: Bearer {TOKEN}" -d "Content-Length: 0"

你找到答案了吗? - Kerollos Melad
2个回答

0
for /f %%A in ('curl -X "POST" "http://localhost:5000/api/jwt/login" -H "accept: */*" -H "Content-Type: multipart/form-data" -F "Username=admin" -F "Password=mypass"') do set token=%%A
    
echo %token%

echo off

(set result=)


for /F %%I in ('curl -X "GET" "http://localhost:5000/api/arsys/v1.0/entry/ASTComputerSystem" -H "accept: */*" -H "Authorization: AR-JWT %token%"') do (
CALL set result=%%result%%%%I
)


echo on
echo %result%

0
WScript.StdOut.WriteLine("Hello world!");
var objShell = new ActiveXObject("WScript.shell");

var exe = objShell.Exec('curl -X \"POST\" \"http://localhost:5000/api/jwt/login\" -H \"accept: */*\" -H \"Content-Type: multipart/form-data\" -F \"Username=admin\" -F \"Password=mypass\"');

var token = exe.StdOut.ReadAll();

WScript.StdOut.WriteLine(token);

exe = objShell.Exec('curl -X \"GET\" \"http://localhost:5000/api/arsys/v1.0/entry/ASTComputerSystem\" -H \"accept: */*\" -H \"Authorization: AR-JWT '+ token);

var result = exe.StdOut.ReadAll();

WScript.StdOut.WriteLine(result);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接