Html - 单页 - 保持登录状态

时间:2016-03-12 23:15:49

标签: html login

我有一个带有大量javascript的Html页面,这些页面会在视图之间发生变化。

有些观点要求此人登录,并因此提示。

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

编辑:::

解释更多。以下是我看到的问题。

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

var isLoggedIn = true;
var userEmail = "myemail@mysite.com";

任何人都可以破解我的代码来更改这些值,然后获取其他人的信息。这是不好的。因此,我需要在javascript中存储类似散列密码的内容,而不是isLoggedIn。

var userHashedPassword = "shfasjfhajshfalshfla";

但是我读到的每一个地方都说你不应该在内存中保留任何密码。

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

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

这就是我现在所做的,但我不满意。

有一个带有3个单选按钮的页面/ div。空置游戏(不需要用户信息),我的游戏(需要用户知识,必须登录),我的旧游戏(也需要登录状态)。

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

我在javascript中有两个变量

var g_Email = "";
var g_PasswordEncrypted = "";

注意这些都是0长度字符串。

如果用户想要查看他们的游戏,他们会点击我的游戏单选按钮。代码检查g_Email和PasswordEncrypted是否为0长度字符串,如果是,则转到他们需要登录的div。

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

所以如果登录成功,那么

g_Email = "myemail@mysite.com";
g_PasswordEncrypted = "this is and encrypted version of the password";

如果登录失败,则将这两个设置为“”。

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

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

如果服务器请求中有任何失败,它只会在回调函数中发回一条错误消息(我正在使用ajax),如果有任何错误,它会知道将g_Email和g_PasswordEncrypted设置为“”。 (在后一种情况下,客户端知道它必须重新请求登录详细信息,因为这两个字符串是“”)。

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

1 个答案:

答案 0 :(得分:2)

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

如果javascript为从服务器已经收到的数据中获取的视图中的内容进行了测量,那么它应该使用一些变量保持用户状态(已记录/未记录)。根据该值,javascript将显示登录提示或显示视图所需的内容。