Как установить cookie браузера из запроса curl - PullRequest
0 голосов
/ 26 октября 2018

После долгих головокружений и потери времени я узнал, что если я использую curl для проверки сохранения токена в cookie, как показано на flask_jwt_extended website

cookie не устанавливается, но если я использую RESTClient в браузере, cookie устанавливается.

Я попробовал этот локон: curl -H "Content-Type: application/json" -X POST -d '{"username":"test","password":"test"}' http://localhost:5000/token/auth

1 Ответ

0 голосов
/ 27 октября 2018

Используя пример flash_jwt_extended , если вы установите подробный режим -v, вы увидите, что установлены cookie:

* upload completely sent off: 37 out of 37 bytes
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Content-Type: application/json
< Content-Length: 15
< Set-Cookie: access_token_cookie=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIwZjM4Zjg5NC1hNzRmLTQ5NTMtODYwOC1mOTdmNzhmNDIyMWMiLCJleHAiOjE1NDA2MDA4MDEsImZyZXNoIjpmYWxzZSwiaWF0IjoxNTQwNTk5OTAxLCJ0eXBlIjoiYWNjZXNzIiwibmJmIjoxNTQwNTk5OTAxLCJpZGVudGl0eSI6InRlc3QifQ.D-ZGU2Bglb0N1h02yTeV3NBuWjlx7FB0UNG5mkukrHA; HttpOnly; Path=/api/
< Set-Cookie: refresh_token_cookie=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJkYTcyZjcyYS00MTU2LTRlYWYtOWEwZC03ODZjMTQ3ZWZjZTUiLCJleHAiOjE1NDMxOTE5MDEsImlhdCI6MTU0MDU5OTkwMSwidHlwZSI6InJlZnJlc2giLCJuYmYiOjE1NDA1OTk5MDEsImlkZW50aXR5IjoidGVzdCJ9.Lhla3ZwhY4vHgOFhmjBxPKnEmi1uoh-WXIwTWj_ibwI; HttpOnly; Path=/token/refresh
< Server: Werkzeug/0.14.1 Python/2.7.13
< Date: Sat, 27 Oct 2018 00:25:01 GMT
< 
{"login":true}
* Closing connection 0

Если вы хотите сохранить cookie между несколькими командами, используйте -c cookie.txt для сохранения cookie в файле cookie.txt, а в другой команде используйте -b cookie.txt для загрузки их:

curl -H "Content-Type: application/json" \
     -d '{"username":"test","password":"test"}' \
     "http://localhost:5000/token/auth" -c cookie.txt

curl "http://localhost:5000/api/example" -b cookie.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...