基于表单的登录,同时也应用 REST 原则
Posted
技术标签:
【中文标题】基于表单的登录,同时也应用 REST 原则【英文标题】:Form based login while also applying REST principles 【发布时间】:2010-12-01 05:36:33 【问题描述】:我是一名 Spring/JavaEE Web 程序员,并开始研究 REST 原则以用于未来的 Web 应用程序,但我不知道如何进行可用登录。对于 Web API,它是有意义的,但是面向最终用户的 Web 应用程序呢?我研究了 HTTP 基本/摘要身份验证,但这只会产生一个丑陋的对话框。有人有什么想法吗?
【问题讨论】:
【参考方案1】:这实际上取决于您如何处理基于表单的登录。
它在 J2EE 规范中定义的方式,登录页面仅在用户尝试访问受保护的资源时显示给(尚未经过身份验证的)用户;它本身不能(或不应该)访问。在这种情况下,登录页面不必受 REST 原则的约束,因为它本身不是“资源”。换句话说,工作流程是:
-
用户尝试获取 REST url,'/products/0332425'
他/她被重定向到“/login”,发布他的凭据,被重定向回(作为 GET)到原始页面(“/products/0332425”)
随后尝试访问“/login”会导致错误(403?)或重定向到“root”。
如果这对您不起作用,并且您需要在多个页面上提供您的登录表单,请将其视为页面的一部分并像对待任何其他 POST 一样将其提交。
【讨论】:
这不是真正的 RESTful。 RESTful 将是 HTTP 身份验证,您在每个请求中发送用户名和密码(或哈希)。以上是关于基于表单的登录,同时也应用 REST 原则的主要内容,如果未能解决你的问题,请参考以下文章