rest - keep - php curl send cookie session




¿Cómo utilizar cURL para enviar cookies? (2)

He leído que Enviar cookies con rizo funciona, pero no para mí

Tengo un punto final REST como

class LoginResource(restful.Resource):
    def get(self):
        print(session)
        if 'USER_TOKEN' in session:
            return 'OK'
        return 'not authorized', 401

cuando intento acceder como

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"%

donde mi ~/Downloads/cookies.txt es

cat ~/Downloads/cookies.txt
USER_TOKEN=in

y el servidor no recibe nada

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 -

¿Qué es eso que me estoy perdiendo?


Está utilizando un formato incorrecto en su archivo de cookie. Como indica la documentación de Curl , utiliza un antiguo formato de archivo de cookies de Netscape, que es diferente del formato utilizado por los navegadores web. Si necesita crear un archivo de cookie de curl manualmente, esta publicación le ayudará. En su ejemplo, el archivo debe contener la siguiente línea

127.0.0.1   FALSE   /   FALSE   0   USER_TOKEN  in

tener 7 campos separados por TAB que significan dominio , emparejamiento , ruta , seguro , caduca , nombre , valor .


Esto funciono para mi

 curl -v --cookie "USER_TOKEN=Yes" http://127.0.0.1:5000/

Pude ver el valor en el backend usando

print request.cookies






session-cookies