2017-02-26 61 views
0

在我的服务器中,我创建了快速会话。我想在这个存储中检查用户是否已经登录。我不知道如何在代码的非服务器端访问这个快速会话。Javascript如何引用客户端上的快速会话

基本上,如果用户登录,我将编辑用户看到的页面。我只知道编辑页面,如果用户登录或不需要我访问快速会话。

回答

0

您无法访问客户端(如浏览器)上的快速会话数据。 它只能在服务器端访问。

注意会话数据不会保存在cookie本身,只是会话ID。会话数据存储在服务器端。

您需要添加一些端点来检查会话以获取有关用户状态的信息。

0

您无法直接从客户端访问会话数据。它仅存储在服务器端。会话cookie仅包含会话ID,不包含实际的会话状态。

要访问登录的状态,你有几个选择:

  1. 当你渲染页面,在页面中插入JavaScript变量已登录的状态下它,也许是登录用户的用户ID。然后,您的客户端JS可以简单地检查该变量以了解状态。如果您使用任何类型的模板引擎来渲染页面,这很简单。在一些高级标记(如页面中的标记)上设置loggedIn类名也很常见。这允许CSS根据用户是否登录来自动调整(例如,隐藏登录按钮)。

  2. 您可以检查是否存在会话cookie。如果没有会话cookie存在,则用户不能登录。会话cookie存在的事实并不一定意味着用户已登录。这可能是旧的cookie,甚至可能是来自不同cookie的cookie用户。但是,没有cookie将意味着没有用户登录。

  3. 您可以查询服务器并询问它。您必须指定要查询的用户ID,然后服务器才能检查当前会话Cookie是否有效并属于该特定用户。

就我个人而言,我可能会做一些选项#1的变化。

+0

@MoStack - 如果这回答了您的问题,那么您可以通过单击答案左侧的绿色复选标记来向社区表明该问题。这也将为您在堆栈溢出时遵循适当的过程赢得一些声望点。如果你的问题还没有得到解答,那么请在你理解时仍需要帮助的地方添加评论。 – jfriend00