我正在查看具有以下标题的curl请求。这是什么意思?
curl -H 'Authorization:token token="[SOME_VALUE]"' 'https://myurl.com'
此外,我正在尝试使用RestClient
从ruby请求此URL。 https://github.com/rest-client/rest-client
通常在标题中它只是key:value
,但这里似乎有所不同。
答案 0 :(得分:2)
您要使用的API似乎正在采用HTTP Token authentication RFC。
这份文件是草案,它从未变成官方标准,但有一些API正在使用它。
GET /resource/1 HTTP/1.1
Host: example.com
Authorization: Token token="h480djs93hd8",
coverage="base",
timestamp="137131200",
nonce="dj83hs9s",
auth="djosJKDKJSD8743243/jdk33klY="
您可以使用header
选项pass custom headers到RestClient。
api_token = "xyz"
RestClient.get "http://example.com/resource", { :Authorization => %Q{token token="#{api_token}"} }
我使用%Q
来允许插值。如果你不清楚,你也可以使用像
api_token = "xyz"
RestClient.get "http://example.com/resource", { :Authorization => 'token token="%s"' % api_token }
答案 1 :(得分:1)
它与键值对相同。密钥为Authorization
,值为token token="[SOME_VALUE]"
。这应该像下面那样从here复制的ruby哈希。
{:Authorization => 'token token="[SOME_VALUE]"'}
答案 2 :(得分:0)
您可以在标头中使用一些其他信息,而不仅仅是key:value
。例如:
Accept: text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c
Authorization:token token="[SOME_VALUE]"
可与基于令牌的身份验证的API一起使用。
基于令牌的身份验证是指API客户端使用令牌标识符进行经过身份验证的HTTP请求。
您可以在此处详细了解此类身份验证:http://blog.codeschool.io/2014/02/03/token-based-authentication-rails/