0

我正在使用 asp mvc web api 开发一个 Web Api。对于Authenticate a user,api实现了一个token系统认证,所以用户必须在请求时发送一​​个额外的参数,它是一个键值对:token:key。

我的问题是,如果我向 api 发出 Post 请求,我必须在内容正文上发送令牌,或者我可以在 url 上发送它(例如 miurl.com?token=aaaaaa)

谢谢你

4

1 回答 1

1

我会将令牌作为 HTTP 授权标头发送。这被认为是 REST/HTTP 的更“标准”。它在 HTTP 标准中定义:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

它更好的原因是

  • 将它放在 URL 中会在浏览器历史记录等中公开它。
  • 使用消息正文意味着您必须阅读整个消息正文才能对其进行身份验证,而使用标头意味着您只需要阅读标头。

要提取令牌并执行身份验证/授权,您可以通过覆盖该方法来实现自定义AuthorizeAttribute并从中读取令牌。HttpContextAuthorizeCore()

于 2013-10-21T18:11:46.370 回答