OAuth 2.0授权标头

JKh*_*ang 88 http oauth-2.0

我想开发一个封装OAuth 2.0功能的SDK.我已经检查了OAuth 1.0和2.0之间的差异,我对Authorization Header(1.02.0)有一些混淆,OAuth 1.0协议参数可以使用HTTP"Authorization"标头传输,但我找不到当前描述的OAuth 2.0草案.

OAuth 2.0是否支持授权标头?

在OAuth 1.0中,您的标题如下所示:

Authorization: OAuth realm="Example",
    oauth_consumer_key="0685bd9184jfhq22",
    oauth_token="ad180jjd733klru7",
    oauth_signature_method="HMAC-SHA1",
    oauth_signature="wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D",
    oauth_timestamp="137131200",
    oauth_nonce="4572616e48616d6d65724c61686176",
    oauth_version="1.0"
Run Code Online (Sandbox Code Playgroud)

Jon*_*han 196

对于那些寻找如何在头文件中传递OAuth2授权(访问令牌)的示例(与使用请求或body参数相反),以下是它的完成方式:

Authorization: Bearer 0b79bab50daca910b000d4f1a2b675d604257e42
Run Code Online (Sandbox Code Playgroud)

  • 对于遇到此线程尝试使用cURL的授权标头的任何人,这是命令:`curl -H"授权:Bearer $ ACCESS_TOKEN"URI` (28认同)
  • `Authorization`是标题名称,冒号按照RFC2616的第4.2节(http://docs.huihoo.com/http/rfc2616-http-1.1/rfc2616-sec4)将名称与所有标题中的值分开. HTML). (9认同)
  • 快速提问,因为我一直看到这样的答案,但没有澄清:如果我在代码中执行此操作(通过HTTPRequest API),我会使用标题名称和关联的数据字段向我的请求添加标题.在这个答案中,哪个部分是标题的名称,哪个数据?也就是说,标题是`Authorization:Bearer`,用'0b ... 42`作为数据,或者是标题`Authorization:`with`Bearer 0b ... 42`作为数据,还是什么?谢谢!(顺便说一句,我是Oauth2,如果重要的话.) (5认同)

Sco*_* T. 34

您仍然可以在OAuth 2.0中使用Authorization标头.授权标头中指定了一个承载类型,用于OAuth承载令牌(意味着客户端应用只需要呈现("承担")令牌).标头的值是客户端从授权服务器接收的访问令牌.

它在此规范中有记录:https://tools.ietf.org/html/rfc6750#section-2.1

例如:

   GET /resource HTTP/1.1
   Host: server.example.com
   Authorization: Bearer mF_9.B5f-4.1JqM
Run Code Online (Sandbox Code Playgroud)

其中mF_9.B5f-4.1JqM是您的OAuth访问令牌.