这个问题已经重复了,我看到了许多不同的答案,但它对我来说还不起作用!我有一台服务器设置了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"}
答案 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"