此tutorial用于构建具有Devise的API,建议使用标头通过登录电子邮件和API令牌发送,而不是将其作为URL参数嵌入。
我们期望客户端应用程序通过两个标头发送它:“X-API-EMAIL”和“X-API-TOKEN”,而不是通过参数发送数据。这会清除端点URI。
有人可以详细说明“清理”通过标题要求身份验证的优势是什么意味着客户端将它们作为参数嵌入到URL中?
答案 0 :(得分:0)
我认为通过“清理”它们只是意味着URL更整洁,只包含有关正在请求/更新的资源的信息/...
使用这种方法很常见 - 可以说,从概念上来说,保持您请求的内容与提出请求的凭据的详细信息有些不同。 “授权”HTTP标头是用于凭据的标准标头(例如,HTTP Basic Auth http://en.wikipedia.org/wiki/Basic_access_authentication#Client_side,AWS API http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html#ConstructingTheAuthenticationHeader等等。
它还消除了凭证参数与其他参数之间发生冲突的可能性。对于一个简单的示例,假设您使用password
作为凭据密码,并且还需要一个名为password
的普通参数用于特定的API调用(当您更新另一个用户时)。你不能拥有它 - 其中一个必须以不同的名称命名。好的,您可以轻松地做到这一点,但这有点人为,如果您在Authorization标头中提供凭据的密码,您可以自由地使用一个名为password
的参数,该参数与您的实际请求相关。制作(例如,您为其他用户设置的新密码)。