NRa*_*Raf 124 rest authorization header http
我想知道将自定义数据放入HTTP授权标头是否可以接受.我们正在设计RESTful API,我们可能需要一种方法来指定自定义授权方法.举个例子,我们称之为FIRE-TOKEN身份验证.
根据规范,这样的事情是否有效并允许: Authorization: FIRE-TOKEN 0PN5J17HBGZHT7JJ3X82:frJIUN8DYpKDtOLCwo//yllqDzg=
第二个字符串的第一部分(在':'之前)是API密钥,第二部分是查询字符串的哈希.
Sta*_*eck 131
RFC2617中定义的格式是credentials = auth-scheme #auth-param.因此,在同意fumanchu时,我认为更正的授权方案看起来像
Authorization: FIRE-TOKEN apikey="0PN5J17HBGZHT7JJ3X82", hash="frJIUN8DYpKDtOLCwo//yllqDzg="
Run Code Online (Sandbox Code Playgroud)
FIRE-TOKEN方案在哪里,两个键值对是auth参数.虽然我相信引号是可选的(来自p7-auth-19的Apendix B)......
auth-param = token BWS "=" BWS ( token / quoted-string )
Run Code Online (Sandbox Code Playgroud)
我相信这符合最新标准,已经在使用(见下文),并为简单扩展提供了键值格式(如果您需要其他参数).
这里可以看到这个auth-param语法的一些例子......
http://tools.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
Bri*_*lly 19
将它放在一个单独的自定义标题中.
重载标准的HTTP标头可能会导致更多的混乱,并且会违反最少惊喜的原则.它还可能导致API客户端程序员的互操作性问题,他们希望使用现成的工具包,这些工具包只能处理标准形式的典型HTTP头(例如Authorization).
fum*_*chu 15
不,根据RFC 2617中的"凭证"定义,这不是有效的生产.您提供了有效的身份验证方案,但auth-param值必须是格式token "=" ( token | quoted-string )(请参阅第1.2节),并且您的示例不使用"=".
老问题我知道,但对于好奇:
信不信由你,这个问题在20年前用HTTP BASIC解决了,它将值传递为base64编码的用户名:密码.(见http://en.wikipedia.org/wiki/Basic_access_authentication#Client_side)
您也可以这样做,以便上面的示例变为:
Authorization: FIRE-TOKEN MFBONUoxN0hCR1pIVDdKSjNYODI6ZnJKSVVOOERZcEtEdE9MQ3dvLy95bGxxRHpnPQ==
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
143930 次 |
| 最近记录: |