当前位置:  开发笔记 > 编程语言 > 正文

为什么基于表单的身份验证不被视为RESTful?

如何解决《为什么基于表单的身份验证不被视为RESTful?》经验,为你挑选了3个好方法。

虽然我"想"我理解它,但我需要一些清晰度.使用PURE Restful身份验证,事情确实变得有点笨拙,使用表单对应用程序的UI有很大帮助(即,获得单独的登录页面,忘记密码链接,更容易注销?等等)

现在表格出现了,有些人说"不安宁" - 对他们来说"不安宁"是什么?难道没有相应的登录资源可以这么说吗?还是它会强迫我失踪的其他东西?

注意:如果有人与他们创建会话,那就完全不同了.我更热衷于知道"为什么"他们被称为宁静?谷歌搜索"基于表单的身份验证与静态身份验证"会引发不少命中.

可以使用这些"表单"来验证和传递令牌以便应用程序存储在cookie等中,我觉得这完全是宁静的(假设加密安全等等),...



1> Will Hartung..:

通过表单发送凭据进行身份验证没有任何问题.问题是大多数基于表单的系统依赖于会话,因此要求您只登录"一次".

会话是服务器状态,因此违反了REST体系结构的无状态约束.

如果每次都必须发送凭据,则可以将它们包含在有效负载中(即使用表单),也可以使用HTTP Authorization标头.

如果将它们包含在有效负载中,则可以将它们包含在正文中,但仅限于POST或PUT,而不是GET或DELETE(因为它们没有正文).

如果将它们作为查询参数的一部分包含在URL中,则URL不再必须代表实际资源.其中一个原则是URL匹配资源.在查询参数混乱中添加带外信息(例如凭证),这些信息会限制一些.

因此,对于基于HTTP的REST系统,您最好使用现有的HTTP授权机制,而不是使用其他方法.您也可以使用特定于客户端的SSL证书,这也可以正常工作.


当然.但是,如果您要这样做,为什么不简单地使用Authorization标头来代替Cookie标头?
是的,相反,你可以尝试使用Basic和Digest来解决网页问题!每个人都有很多乐趣.

2> Brian Drisco..:

好问题.我认为RESTful纯粹主义者可能会说拥有与动作而不是资源相关联的URI 是使基于表单的身份验证不是RESTful的原因,这是您自己指出的.

老实说,我认为100%纯RESTful应用程序的概念在Web应用程序方面有点像乌托邦的理想.我认为,对于RESTful Web服务来说,这是可以实现的,因为调用应用程序可以使用请求标头传递凭据.

在一天结束时,我认为只要您的应用程序正常工作就可以了,您不应该担心它是否纯粹是RESTful.

这是我的0.02美元.


尽管后者是最纯净的,但22k Gold强于24k

3> Matt Ball..:

从这个答案:

要成为RESTful,每个HTTP请求应该自己携带足够的信息,以便其接收者处理它以与HTTP的无状态特性完全协调.

并不是基于表单的auth不是RESTful - 根本没有RESTful会话.RESTful方式是为每个请求发送凭据.然而,这可能很容易被窃听,但HTTPS/SSL/TLS会关闭这个漏洞.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有