如何向curl命令添加认证头以请求资源?

时间:2016-03-01 07:23:42

标签: curl

这个问题已经重复了,我看到了许多不同的答案,但它对我来说还不起作用!我有一台服务器设置了ruby in rails。

我通过终端的第一个命令工作正常并收到一个访问令牌:

curl -i -X POST -d 'member_id=123456789&access_code=password&device_id=1234567890' https://myserver/customer_authentication

规范说要求资源:

The request requires an authorization header.

除此之外:

存储在授权标头中的用户的在线访问令牌将用于查找用户。匿名用户标识符也将用于查找客户信息,并确保与访问令牌相关联的客户的关联。 示例:header ['Authorization'] =“Bearer online_banking_access_token”

现在我试图从服务器获取数据列表,在规范中说:

GET /org1/customers/:acid/accounts

这将返回用户帐户的json。我用过这些,但都没有为我工作:

curl -H GET Authorization: "348129" https://myserver/api/org1/customers/:acid/accounts

curl –H GET "Authorization: Token 348129" https://myserver/api/org1/customers/:acid/accounts

这是服务器上的代码:

  if @customer && authenticated_customer_matches_requested_customer
    body = { accounts: array_of_account_hashes }
    status_code = :ok
  else
    body = { error_message: 'Invalid access token' }.to_json
    status_code = :unauthorized
  end

我收到了:

{"error_message":"Invalid access token"}

2 个答案:

答案 0 :(得分:2)

使用curl和-X选项设置请求类型,使用选项-H设置请求标题。

卷曲-X [GET | POST | PUT | DELETE] -H"认证xxx" " http://your.server.com"

答案 1 :(得分:1)

您需要更改curl命令,如下所示。

curl https://myserver/api/org1/customers/:acid/account -X GET -H "Authorization: Token 348129"