不,这是不可能的。请参阅中的语法定义 http://greenbytes.de/tech/webdav/rfc7235.html#header.authorization
这应该是可能的,您只需在字段值之间添加逗号,例如:
GET /presence/alice HTTP/1.1 Host: server.example.com Authorization: Bearer mF_9.B5f-4.1JqM, Basic YXNkZnNhZGZzYWRmOlZLdDVOMVhk
这是在。中定义的 RFC7230 ,第3.2.2节,现场顺序:
发件人不得在邮件中生成具有相同字段名称的多个标题字段,除非该标题字段的整个字段值定义为逗号分隔列表[即#(值)]或标题字段是否为已知异常(如下所述)。 收件人可以将具有相同字段名称的多个头字段组合成一个“field-name:field-value”对,而不改变消息的语义,方法是将每个后续字段值按顺序附加到组合字段值,由a分隔逗号。因此,接收具有相同字段名称的头字段的顺序对于组合字段值的解释是重要的;代理不得在转发消息时更改这些字段值的顺序。
发件人不得在邮件中生成具有相同字段名称的多个标题字段,除非该标题字段的整个字段值定义为逗号分隔列表[即#(值)]或标题字段是否为已知异常(如下所述)。
收件人可以将具有相同字段名称的多个头字段组合成一个“field-name:field-value”对,而不改变消息的语义,方法是将每个后续字段值按顺序附加到组合字段值,由a分隔逗号。因此,接收具有相同字段名称的头字段的顺序对于组合字段值的解释是重要的;代理不得在转发消息时更改这些字段值的顺序。
我不知道是否所有网络服务器都接受了这一点 - 在撰写本文时,我正在与同事讨论是否应该工作。
我有一个类似的问题。这似乎是一个非常普遍的问题 ( 链接到问题 )。我最终将承载令牌的授权标题更改为非标准的标题
X-Auth:承载mF_9.B5f-4.1JqM
这样它只是另一个HTTP头,基本的http授权将通过。如果您正在开发自己的API,这应该没问题。
的 一些进一步的研究 强>
基于 RFC 2617 这里有一些有趣的细节。
用户代理必须 选择使用最强的auth-scheme它的挑战之一 根据该用户理解并请求来自用户的凭证 挑战。 请注意,许多浏览器只会识别Basic并且需要 它是第一个提出的授权方案。服务器应该只 如果它是最低限度可接受的,请包括Basic。
用户代理必须 选择使用最强的auth-scheme它的挑战之一 根据该用户理解并请求来自用户的凭证 挑战。
请注意,许多浏览器只会识别Basic并且需要 它是第一个提出的授权方案。服务器应该只 如果它是最低限度可接受的,请包括Basic。