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

前端之家收集整理的这篇文章主要介绍了表单 – 为什么基于表单的身份验证不被认为是RESTful的?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
虽然我“认为”我明白了,我需要一些清晰度。使用PURE Restful身份验证,事情确实有点笨拙,使用表单可以帮助应用程序的UI(即获得单独的登录页面,忘记密码链接,更轻松的注销等)

现在形式来了,有些人说“不安宁” – 对他们来说是什么“不安宁”?是不是没有相应的登录资源呢?还是强迫我失踪的其他东西?

注意:如果他们与他们建立会话,这是一个不同的事情。我更喜欢知道“为什么”他们的品牌是宁静的?只是谷歌搜索“基于表单的身份验证vs安全的身份验证”引起了不少命中。

可以使用这些“表单”来认证和传递令牌,以便应用程序存储在cookies等中,我觉得这是完全平静的(假设加密安全性等)…

解决方法

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

会话是服务器状态,因此违反了REST架构的无状态约束。

如果您必须每次发送凭据,您都可以将其包含在有效负载中(即使用表单),也可以使用HTTP授权头。

如果将它们包含在有效载荷中,则可以将它们包含在正文中,但只能用于POST或PUT,而不是GET或DELETE(因为它们没有主体)。

如果将它们作为查询参数的一部分包含在URL中,那么URL不再一定代表实际的资源。其他原则之一是URL与资源匹配。在查询参数混合之外添加带外信息(如凭据),限制一点。

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

猜你在找的HTML相关文章