5

我正在构建一个单页应用程序,请阅读登录页面不应在同一页面上。我应该作为单独的 html 页面登录,还是我也可以在同一页面中登录。

如果我作为不同的页面登录,则取决于我加载的第一页应该重定向到客户端的另一个页面。

即假设我先加载SPA,如果用户没有登录,我必须重定向到客户端的登录页面。并假设我首先加载登录页面,并且用户已经登录,我必须重定向到客户端的 SPA。

这个问题的一般解决方案是什么?

4

1 回答 1

3

我将登录和验证放在单独的页面中,然后使用 ajax 进行调用。

  1. 用户访问索引文件。
  2. 索引文件检查服务器端页面以查看用户是否已登录。
  3. 页面显示内容取决于来自服务器端页面的 json 答案是真还是假。

然后我会做同样的登录。

  1. 用户提供登录信息
  2. 通过 ajax 和 json 检查服务器端文件。
  3. 如果成功则页面刷新,如果不成功则抛出错误响应。

我的回答的底线是,在创建单页应用程序时,ajax 是要走的路。但是,由于您没有提供您使用的语言,我无法给您更详细的答案。

然而,客户端单页处理登录和内容选择是非常糟糕的做法,应该完全避免,因为它们缺乏安全性(我不能强调这一点),因为所有元素甚至对匿名访问都是可用的,并且 DOM 操作将启用未经授权的用户访问受限内容。您必须使用 ajax 来进行后端服务器端授权 - 如前所述,以及 SPA 上的服务器端代码,根据您的授权状态呈现不同的内容。

您描述的场景需要具有用于选择要呈现的内容的服务器端代码和用于在 SPA 上实现功能的客户端代码以及 ajax。

但是,您可以做的是 - 例如按下登录按钮时 - 使用 ajax 调用另一个文件,删除包装 div 的内容并将 ajax 响应附加到该 div。然后,您将一起避免客户端重定向。

于 2012-08-13T08:54:23.513 回答