Html-单页-保持登录状态

Html-单页-保持登录状态,html,login,Html,Login,我有一个Html页面,其中包含大量javascript,可以在视图之间进行更改 有些视图要求用户登录,因此会提示用户登录 我如何才能注意到此人已使用javascript成功登录,这不会是安全问题,但意味着此人不必重复登录每个视图。我不想每次都继续回到服务器 编辑::: 再解释一下。以下是我看到的问题 假设我的javascript中有以下内容: var isLoggedIn = true; var userEmail = "myemail@mysite.com"; var userHashedP

我有一个Html页面,其中包含大量javascript,可以在视图之间进行更改

有些视图要求用户登录,因此会提示用户登录

我如何才能注意到此人已使用javascript成功登录,这不会是安全问题,但意味着此人不必重复登录每个视图。我不想每次都继续回到服务器

编辑:::

再解释一下。以下是我看到的问题

假设我的javascript中有以下内容:

var isLoggedIn = true;
var userEmail = "myemail@mysite.com";
var userHashedPassword = "shfasjfhajshfalshfla";
任何人都可以破解我的代码来更改这些值,然后获取另一个人的信息。那不好。因此,我需要的不是isLoggedIn,而是存储在javascript中的哈希密码:

var isLoggedIn = true;
var userEmail = "myemail@mysite.com";
var userHashedPassword = "shfasjfhajshfalshfla";
但在我读到的每一个地方,他们都说你不应该在内存中保留任何密码内容,不管时间长短

那么,我应该保留哪些变量,在哪里?用户将不断地在非用户特定的div和基于用户的div之间切换,我不希望他们每次都必须不断地登录

****编辑2:*****

这是我目前正在做的,但我不满意

有一个带有3个单选按钮的页面/分区。空闲游戏(不需要用户信息)、我的游戏(需要了解用户并必须登录)、我的旧游戏(还需要登录状态)

当第一次进入页面时,它默认为空游戏,并从服务器获取信息,而不需要登录

在javascript中有两个变量

var g_Email = "";
var g_PasswordEncrypted = "";
请注意,这两个字符串都是0长度的字符串

如果用户想要查看他们的游戏,请单击“我的游戏”单选按钮。代码检查g_电子邮件和密码加密是否为0长度字符串,如果是,则转到需要登录的div

当用户提交他们的登录信息时,它会进入服务器,检查他们的详细信息,并发回一条ok消息,以及用户请求的所有信息(我的游戏)

因此,如果登录成功,那么

g_Email = "myemail@mysite.com";
g_PasswordEncrypted = "this is and encrypted version of the password";
如果登录失败,则将这两个设置为“”

然后,当用户导航到任何需要登录的页面时,它会检查这两个字符串是否已填充。如果是,当您请求诸如“我的游戏”之类的信息时,它将而不是转到登录页面

相反,它只是将这些字符串中的信息和我的游戏请求一起发送到服务器。服务器仍然会在发回信息之前检查这些电子邮件和加密密码是否有效,但在客户端,用户不必每次重复输入这些信息

如果服务器请求中出现任何故障,它只会在回调函数中返回一条错误消息(我使用的是ajax),该函数知道如果出现任何错误,应将g_电子邮件和g_密码加密设置为“”。(在后一种情况下,客户端知道它必须重新请求登录详细信息,因为这两个字符串是“”


我不喜欢的是,我把加密密码保存在用户的客户端机器上。如果他们离开机器,有人可以用chrome之类的工具打开调试器并提取这些详细信息,然后在一段时间后将其破解到他们的机器中。

如果javascript从服务器加载每个视图的内容,那么服务器就可以知道当前会话是否属于登录用户。如果用户未登录,服务器将响应提示登录,否则将发送视图内容


如果javascript为从服务器接收到的数据派生的视图构建内容,那么它应该使用一些变量来保持用户的状态(logged/not_logged)。根据该值,javascript将显示登录提示或显示视图所需的内容。

如果javascript从服务器加载每个视图的内容,则服务器需要知道当前会话是否属于已登录用户。如果用户未登录,服务器将响应提示登录,否则将发送视图内容


如果javascript为从服务器接收到的数据派生的视图构建内容,那么它应该使用一些变量来保持用户的状态(logged/not_logged)。根据该值,javascript将显示登录提示或显示视图所需的内容。

您已经击中了要害,但我仍然不确定该怎么办。我已经做了编辑来解释更多。不清楚您使用的是什么方案。页面上是否总是存在“已记录内容”和“未记录内容”,而您只是根据用户状态在javascript中决定在视图上显示哪些内容?您如何知道用户是否已登录?您使用ajax登录服务器还是HTML表单?好问题。我在编辑2.Khmmm中解释了更多。。。您使用什么后端作为服务器?为什么不在服务器上保留记录的会话,这样客户端就不会在每个视图上重新验证自己呢?目前我只使用php。但是,从长远来看,我希望使用NodeJs,因此所有内容都可以用javascript编写。但是现在请假设php。我如何保持此登录?我对php不是很在行,我只是用它来查找数据库,仅此而已。另外,客户端机器如何知道客户端已在后端登录?只是在客户端机器上有一个标志,表明一切正常?你已经击中了要害,但我仍然不确定该怎么办。我已经做了编辑来解释更多。不清楚您使用的是什么方案。页面上是否总是存在“已记录内容”和“未记录内容”,而您只是根据用户状态在javascript中决定在视图上显示哪些内容?您如何知道用户是否已登录?您使用ajax登录服务器还是HTML表单?好问题。我在编辑2.Khmmm中解释了更多。。。您使用什么后端作为服务器?为什么不在服务器上保留记录的会话,这样客户端就不会重新验证其身份