Rest API身份验证 - 进一步说明

时间:2013-03-20 06:27:54

标签: api rest authentication cookies http-authentication

我一直在阅读很多REST API身份验证线程,试图将它们的工作原理拼凑在一起。 似乎有2个主要阵营,“只使用HTTP基本/摘要身份验证及其关联的HTTP标头,每次都发送用户密码”和“对URL进行一次身份验证”,获取令牌,存储它,然后发送每个请求。'每个人都同意不使用会话和使用HTTPS,这是公平的。

我只是希望用户在登录后在浏览器上进行身份验证,而不必单独对API进行身份验证。大多数情况下,我希望我的Web服务可以免费访问搜索等,并且只需要在某些位置进行创建/编辑/删除操作的身份验证。前端只是用户的浏览器,通过ajax调用来调用服务。

我的问题是:

  1. 如果您已在网站上使用表单身份验证,那么如何最好地设置HTTP身份验证标头?你需要在你的登录表单上标记一些jQuery(比如这个接受的答案Sending basic authentication information via form),这样你也可以对API进行身份验证并存储,即设置一个基本上只是检查的/ api / authenticate部分您的HTTP身份验证详细信息,以便它们由您的浏览器存储。

  2. 如果您收到一个令牌并发送该令牌而不是您的用户/通过每个请求存储它?每个人都说不使用cookies,但是在哪里浏览器可以存储类似的东西?我可以在一个智能设备上了解你有一个密钥环,或者在一个应用程序中,它有一个地方可以存储它,但不能在浏览器中

  3. 我认为其他选项,我认为,基本上是编写您的网络应用程序,并代表用户向API发送请求(因此您通常使用表单进行身份验证,然后Web应用程序执行API调用,发送用户凭证本身,可以存储,而不是直接来自用户。这似乎是解决问题的一大部分额外工作,如果决定不完全是REST的话,可以通过会话巧妙地规避这个问题,并且还必须存储身份验证详细信息。

    我是不是更好,只是不打扰完全宁静,因为它不适合这个目的和使用会话?这似乎更容易。

0 个答案:

没有答案