简单问题:
为什么以下代码有效...(它返回访问令牌就好了)
curl --data "grant_type=client_credentials&client_id=synchronization_tool&client_secret=8f6a6e73-66ca-4f8f-1234-ab909147f1cf" http://localhost:8080/auth/realms/master/protocol/openid-connect/token
而且这个没有?
curl -d '{"grant_type":"client_credentials","client_secret":"8f6a6e73-66ca-4f8f-1234-ab909147f1cf","client_id":"synchronization_tool"}' http://localhost:8080/auth/realms/master/protocol/openid-connect/token -H "Content-Type: application/json"
它给了我:
"error":"invalid_request","error_description":"Missing form parameter: grant_type"}
Aren他们应该是两个完全类似的请求吗?
答案 0 :(得分:1)
好吧,似乎那些cURL查询不是模拟的。
此外,端点http://localhost:8080/auth/realms/master/protocol/openid-connect/token不理解JSON,它只接受x-www-form-urlencoded问题。
答案 1 :(得分:1)
curl -d 'client_id=xxx' -d 'username=xxx' -d 'password=xxx' -d 'grant_type=password' 'http://localhost:8080/auth/realms/YOUR_REALM_NAME/protocol/openid-connect/token' | python -m json.tool
这对我有用,它将为您提供access_token
和session_token