SeS*_*esa 1 curl zsh pipe jq keycloak
我正在尝试从 Keycloak 端点获取身份验证令牌并使用它来访问另一个资源。获取令牌不是问题,但将其传递到另一个请求的标头中却是一项不可能的任务,至少在单个命令中是这样:
curl \
-X POST \
-d 'client_id=app' \
-d 'username=username' \
-d 'password=password' \
-d 'grant_type=password' \
-d "client_secret=$APP_SECRET" \
'http://localhost:9000/auth/realms/realm/protocol/openid-connect/token' \
| \
jq -r '.access_token' \
| \
curl \
-X GET \
-H "Accept: application/json" \
-H "Authorization: Bearer @-" \ # <- read header value from stdin
-u "username:password" \
"http://localhost:8080/app/api/"
Run Code Online (Sandbox Code Playgroud)
实现这一目标的替代方法是什么?
与其创建一个复杂的命令,为什么不将其分成 2 个操作:
# Get token
token=$(curl \
-X POST \
-d 'client_id=app' \
-d 'username=username' \
-d 'password=password' \
-d 'grant_type=password' \
-d "client_secret=$APP_SECRET" \
'http://localhost:9000/auth/realms/realm/protocol/openid-connect/token' \
| jq -r '.access_token')
# Send request
curl \
-X GET \
-H "Accept: application/json" \
-H "Authorization: Bearer $token" \
-u "username:password" \
"http://localhost:8080/app/api/"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
570 次 |
最近记录: |