【发布时间】:2016-02-14 07:31:15
【问题描述】:
我正在尝试使用 curl 对我的 Web 服务器进行身份验证,以便使用 curl 执行一些安全请求。
要进行身份验证,我使用以下命令:
curl -c cookie.txt -H 'Content-Type: application/json' --data -d "{\"admin_user\" : { \"email\" : \"example@example.com\", \"password\" : \"very_secured\"}}" -X POST http://localhost:3000/admin/login
身份验证运行良好。我看到服务器创建了一个新的会话 ID。
UPDATE "admin_users" SET "last_sign_in_at" = '2015-11-12 19:41:32.927958', "current_sign_in_at" = '2015-11-12 20:04:32.798444', "sign_in_count" = 317, "updated_at" = '2015-11-12 20:04:32.861759' WHERE "admin_users"."id" = 13
然后我尝试重用从响应中收到的 cookie,以从我的服务器检索一些数据:
curl -b cookie.txt 'http://127.0.0.1:3000/admin/my_secured_page'
尽管如此,我还是被重定向回登录页面,并出现错误 401: 4.6ms内完成401 Unauthorized
我试图将我正在做的事情与 Firefox 和 Chrome 做的事情进行比较,但我没有发现身份验证过程有任何区别。
当我使用 Chrome 或 Firefox 检索的 cookie 时,它可以工作,但 curl 生成的却不能。
我什至尝试编辑 curl 生成的 cookie 以将会话 id 编辑为从 chrome cookie 复制的会话标识符,这也有效。
当我在请求标头上比较登录页面返回的 cookie 和我发送到安全页面的 cookie 时,它们具有相同的值。
有人知道我做错了什么吗?
【问题讨论】:
标签: authentication curl cookies