2012-08-13 66 views
1

我正在构建单页面应用程序,请阅读该登录页面不应该在同一页面上。我是否应该将登录信息作为单独的html页面进行登录,或者我也可以在同一页面登录。单页面登录页面应用程序

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

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

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

回答

1

我会把登录和验证放在一个单独的页面,然后使用ajax进行调用。

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

然后我会在登录这样做。

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

我的答案的底线是,在创建单页面应用程序时,ajax是最佳选择。但是,由于您尚未提供您正在使用的语言,因此我无法给您更详细的答案。

客户端单页处理的登录信息和内容的选择却是非常不好的做法,应该尽量避免的,因为他们缺乏安全的全在一起(我不能强调这一点),因为所有的元素将提供甚至匿名访问和DOM操作将使未经授权的用户访问受限制的内容。您必须使用ajax来执行后端服务器端授权 - 如上所述,以及SPA上的服务器端代码,根据您的授权状态呈现不同的内容。

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

然而,你可以做的是 - 当例如推动登录按钮 - 使用ajax调用另一个文件时,移除包装div的内容并将ajax响应附加到该div。那么你会一起避免客户端重定向。

+0

我说的两个页面是登录和应用程序,都是HTML页面,不验证,它发生在后端。 如果登录和应用程序在不同的HTML页面,我必须做一个客户端重定向,我不喜欢。我想要一个解决方案来避免这一点。 – 2012-08-13 10:36:41

+0

修订版是否回答您的问题?如果是这样,请将问题标记为已回答。 – 2012-08-13 17:05:30