curl이있는 쿠키 보내기가 작동하지만 나에게는 그렇지 않다는 것을 읽었 습니다.
나는 다음과 같은 REST
엔드 포인트를 가지고 있다 :
class LoginResource(restful.Resource):
def get(self):
print(session)
if 'USER_TOKEN' in session:
return 'OK'
return 'not authorized', 401
내가 다음과 같이 액세스하려고하면 :
curl -v -b ~/Downloads/cookies.txt -c ~/Downloads/cookies.txt http://127.0.0.1:5000/
* About to connect() to 127.0.0.1 port 5000 (#0)
* Trying 127.0.0.1...
* connected
* Connected to 127.0.0.1 (127.0.0.1) port 5000 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.27.0
> Host: 127.0.0.1:5000
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 401 UNAUTHORIZED
< Content-Type: application/json
< Content-Length: 16
< Server: Werkzeug/0.8.3 Python/2.7.2
< Date: Sun, 14 Apr 2013 04:45:45 GMT
<
* Closing connection #0
"not authorized"%
내 곳 ~/Downloads/cookies.txt
은 :
cat ~/Downloads/cookies.txt
USER_TOKEN=in
서버는 아무것도받지 못합니다.
127.0.0.1 - - [13/Apr/2013 21:43:52] "GET / HTTP/1.1" 401 -
127.0.0.1 - - [13/Apr/2013 21:45:30] "GET / HTTP/1.1" 401 -
<SecureCookieSession {}>
<SecureCookieSession {}>
127.0.0.1 - - [13/Apr/2013 21:45:45] "GET / HTTP/1.1" 401 -
내가 무엇을 놓치고 있습니까?
답변
이것은 나를 위해 일했다 :
curl -v --cookie "USER_TOKEN=Yes" http://127.0.0.1:5000/
백엔드의 값을 사용하여 볼 수 있습니다.
print request.cookies
답변
쿠키 작업 방법에 대한 전체 자습서는 https://curl.haxx.se/docs/http-cookies.html 을 참조하십시오 . 당신이 사용할 수있는
curl -c /path/to/cookiefile http://yourhost/
쿠키 파일에 쓰고 엔진을 시작하고 쿠키를 사용할 수 있습니다.
curl -b /path/to/cookiefile http://yourhost/
쿠키 엔진에서 쿠키를 읽고 시작하거나 파일이 아닌 경우 주어진 문자열을 전달합니다.
답변
쿠키 파일에서 잘못된 형식을 사용하고 있습니다. curl 문서에 나와 있듯이 웹 브라우저에서 사용하는 형식과 다른 이전 Netscape 쿠키 파일 형식을 사용합니다. curl 쿠키 파일을 수동으로 작성해야하는 경우이 게시물 이 도움이됩니다. 귀하의 예에서 파일은 다음 줄을 포함해야합니다
127.0.0.1 FALSE / FALSE 0 USER_TOKEN in
domain , tailmatch , path , secure , expires , name , value를 의미하는 7 개의 TAB 구분 필드 가 있습니다.
답변
애플리케이션에서 해당 요청을 이미 작성했으며 Google Dev Tools에 로그인 된 것으로 표시되는 경우 네트워크 탭에서 요청을 마우스 오른쪽 버튼으로 클릭하면 상황에 맞는 메뉴에서 cURL 복사 명령을 사용할 수 있습니다. 복사-> cURL로 복사 모든 헤더, 쿠키 등이 포함됩니다.