自定义HTTP认证头

我在想,如果这是可以接受把自定义数据在HTTP授权头。 我们正在设计一个RESTful API和我们可能需要一种方法来指定授权的自定义方法。 作为一个例子,让我们称之为FIRE-TOKEN认证。

将这样的事情是有效的,并允许根据该规范: Authorization: FIRE-TOKEN 0PN5J17HBGZHT7JJ3X82:frJIUN8DYpKDtOLCwo//yllqDzg=

第二串的第一部分(前“:”)是API密钥,第二部分是查询字符串的哈希值。

--------------解决方案-------------

在RFC2617中定义的格式是credentials = auth-scheme #auth-param 。 所以,在与fumanchu同意,我想更正授权方案会是什么样子

Authorization: FIRE-TOKEN apikey="0PN5J17HBGZHT7JJ3X82", hash="frJIUN8DYpKDtOLCwo//yllqDzg="

FIRE-TOKEN的方案和两个键-值对是AUTH参数。 虽然我相信引号是可选的(从P7-AUTH-19 Apendix B)...

auth-param = token BWS "=" BWS ( token / quoted-string )

我相信这符合最新的标准,已在使用中(见下文),并提供了简单的扩展,一个键 - 值格式(如果你需要额外的参数)。

这AUTH-参数语法的一些例子可以在这里看到...

http://tool​​s.ietf.org/html/draft-ietf-httpbis-p7-auth-19#section-4.4

https://developers.google.com/youtube/2.0/developers_guide_protocol_clientlogin

https://developers.google.com/accounts/docs/AuthSub#WorkingAuthSub

把它放在一个单独的,自定义标题。

重载标准HTTP标头可能会导致更多的混乱比它的价值,并将违反了最小惊讶原则。 这也可能导致对谁想要使用过的,现成的工具包,只能对付典型的HTTP头文件(如标准表格API客户程序员的互操作性问题Authorization )。

不,这不是一个有效的生产根据RFC 2617你给一个有效的auth-方案“资格证书”的定义,但AUTH-参数值必须是形式token "=" ( token | quoted-string ) (见1.2节),以及您的例子没有使用“=”的方式。

老问题我知道,但对于好奇:

你不想传递结肠中与头的值,因为这会使其无效。

密码:不管你信不信,这个问题与HTTP BASIC,这传递值以Base64编码的用户​​名解决〜2几十年前。 (见http://en.wikipedia.org/wiki/Basic_access_authentication#Client_side)

你可以做同样的,这样上面的例子将成为:

Authorization: FIRE-TOKEN MFBONUoxN0hCR1pIVDdKSjNYODI6ZnJKSVVOOERZcEtEdE9MQ3dvLy95bGxxRHpnPQ==

分类:HTTP 时间:2015-03-15 人气:0
本文关键词: HTTP,头,休息,授权
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.392 (s). 10 q(s)