基于表单的登录,同时还应用REST原则

cho*_*hki 5 java rest spring restful-authentication

我是Spring/JavaEE Web程序员,我开始研究未来Web应用程序的REST原理,但我无法弄清楚如何进行可用的登录.对于Web API来说,它是有意义的,但面向最终用户的Web应用程序呢?我已经研究过HTTP Basic/Digest Authentication,但这只会产生一个丑陋的对话框.有人有主意吗?

Chs*_*y76 2

这实际上取决于您如何处理基于表单的登录。

按照 J2EE 规范中定义的方式,登录页面仅在用户尝试访问受保护资源时才向(尚未经过身份验证的)用户显示;它本身不能(或不应该)访问。在这种情况下,登录页面不必遵守 REST 原则,因为它本身不是“资源”。换句话说,工作流程是:

  1. 用户尝试获取 REST url,“/products/0332425”
  2. 她/他被重定向到“/login”,发布他的凭据,被重定向回(作为 GET)到原始页面(“/products/0332425”)
  3. 随后尝试访问“/login”会导致错误(403?)或重定向到“root”。

如果这对您不起作用,并且您需要在多个页面上提供登录表单,请将其视为页面及其提交的一部分,就像处理任何其他 POST 一样。