尽管授权 JWT cookie,但在 Fusionauth returns 401 中使用现有访问令牌 (JWT) 发出新的访问令牌 (JWT)
issue a new access token (JWT) using an existing access token (JWT) in Fusionauth returns 401 despite authorization JWT cookie
我在这里遵循文档:https://fusionauth.io/docs/v1/tech/apis/jwt
并尝试获得新的 JWT 以访问同一租户中的第二个应用程序。我使用 httpie 而不是 curl 来获取访问令牌:
source config.sh
ACCESS_TOKEN=`http POST "${URL}/api/login" \
"Authorization:${API_KEY}" \
"X-FusionAuth-TenantId:${TENANT1_ID}" \
"applicationId=${APP1_ID}" \
"loginId=${USER}" \
"password=${PASS}" \
| python -m json.tool | grep token | cut -f4 -d'"'`
echo ${ACCESS_TOKEN}
然后我在以下请求中使用此访问令牌来访问第二个应用程序:
source config.sh
JWT=`bash access_token.sh`
http GET ${URL}/api/jwt/issue \
"Authorization: JWT ${JWT}" \
"Cookie: access_token=${JWT}" \
"applicationId=${APP2_ID}"
#http GET ${URL}/api/user \
# "Authorization: JWT ${JWT}"
请注意,对 /api/user 的评论请求运行良好,但是对 /api/jwt/issue returns 401 的请求。
我该如何解决这个错误?
applicationId
必须通过请求参数。
https://fusionauth.io/docs/v1/tech/apis/jwt
当使用httpie
时,单个等号=
表示参数在请求body中被序列化为JSON,而双等号==
表示该参数将附加到请求 URI。
httpie
帮助文本:
'==' URL parameters to be appended to the request URI:
search==httpie
'=' Data fields to be serialized into a JSON object (with --json, -j)
or form data (with --form, -f):
name=HTTPie language=Python description='CLI HTTP client'
尝试修改您的请求,为 applicationId
参数使用双等号 ==
。
http GET ${URL}/api/jwt/issue \
"Authorization: JWT ${JWT}" \
"applicationId==${APP2_ID}"
此外,您只需发送 cookie 或 Authorization
header。如果您同时发送 Authorization
header 将优先。
https://fusionauth.io/docs/v1/tech/apis/authentication#jwt-authentication
我在这里遵循文档:https://fusionauth.io/docs/v1/tech/apis/jwt
并尝试获得新的 JWT 以访问同一租户中的第二个应用程序。我使用 httpie 而不是 curl 来获取访问令牌:
source config.sh
ACCESS_TOKEN=`http POST "${URL}/api/login" \
"Authorization:${API_KEY}" \
"X-FusionAuth-TenantId:${TENANT1_ID}" \
"applicationId=${APP1_ID}" \
"loginId=${USER}" \
"password=${PASS}" \
| python -m json.tool | grep token | cut -f4 -d'"'`
echo ${ACCESS_TOKEN}
然后我在以下请求中使用此访问令牌来访问第二个应用程序:
source config.sh
JWT=`bash access_token.sh`
http GET ${URL}/api/jwt/issue \
"Authorization: JWT ${JWT}" \
"Cookie: access_token=${JWT}" \
"applicationId=${APP2_ID}"
#http GET ${URL}/api/user \
# "Authorization: JWT ${JWT}"
请注意,对 /api/user 的评论请求运行良好,但是对 /api/jwt/issue returns 401 的请求。
我该如何解决这个错误?
applicationId
必须通过请求参数。
https://fusionauth.io/docs/v1/tech/apis/jwt
当使用httpie
时,单个等号=
表示参数在请求body中被序列化为JSON,而双等号==
表示该参数将附加到请求 URI。
httpie
帮助文本:
'==' URL parameters to be appended to the request URI:
search==httpie
'=' Data fields to be serialized into a JSON object (with --json, -j) or form data (with --form, -f):
name=HTTPie language=Python description='CLI HTTP client'
尝试修改您的请求,为 applicationId
参数使用双等号 ==
。
http GET ${URL}/api/jwt/issue \
"Authorization: JWT ${JWT}" \
"applicationId==${APP2_ID}"
此外,您只需发送 cookie 或 Authorization
header。如果您同时发送 Authorization
header 将优先。
https://fusionauth.io/docs/v1/tech/apis/authentication#jwt-authentication