我是一名 Spring/JavaEE 网络程序员,我开始研究 future 网络应用程序的 REST 原则,但我不知道如何进行可用的登录。对于 Web API 来说这是有意义的,但是面向最终用户的 Web 应用程序呢?我查看了 HTTP Basic/Digest Authentication,但这只会产生一个丑陋的对话框。有人有什么想法吗?
最佳答案
这实际上取决于您如何处理基于表单的登录。
按照 J2EE 规范中的定义,登录页面仅在用户尝试访问 protected 资源时显示给(尚未通过身份验证的)用户;它本身不能(或不应该)访问。在这种情况下,登录页面不必受 REST 原则约束,因为它本身不是“资源”。换句话说,工作流程是:
- 用户尝试获取 REST url,“/products/0332425”
- 她/他被重定向到“/login”,发布他的凭据,然后被重定向回(作为 GET)原始页面(“/products/0332425”)
- 随后尝试访问“/login”会导致错误(403?)或重定向到“root”。
如果这对您不起作用并且您需要在多个页面上提供您的登录表单,请将其视为页面的一部分并像对待任何其他 POST 一样提交。
关于java - 基于表单的登录同时应用 REST 原则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1473997/