Javascript 如何将sessionStorage内容传递给Jade变量?

Javascript 如何将sessionStorage内容传递给Jade变量?,javascript,html,node.js,express,pug,Javascript,Html,Node.js,Express,Pug,您可能知道,HTML5中有一个会话存储的概念,我想将它用于一个简单的双因素身份验证案例(在ExpressJS应用程序上)。。。我在我的翡翠视图中有以下逻辑/代码: extends ../layout block content - var two_factor = user.two_factor - var liveToken = user.liveToken - var inputToken = sessionStorage.userToken if two_factor ==

您可能知道,HTML5中有一个会话存储的概念,我想将它用于一个简单的双因素身份验证案例(在ExpressJS应用程序上)。。。我在我的翡翠视图中有以下逻辑/代码:

extends ../layout
block content
  - var two_factor = user.two_factor
  - var liveToken = user.liveToken
  - var inputToken = sessionStorage.userToken
  if two_factor == true
    if liveToken != inputToken
      //- Show input for entering user_token
    else
      //- Render Content
  else
    if liveToken == inputToken
      //- Render Content
在服务器端,每次用户登录时,我都会生成一个随机的6位令牌代码,发送到用户的手机,然后我想做的就是(通过jade)如图所示进行验证:基本上,如果用户启用了双因素身份验证,我只想呈现一个输入字段,供用户输入代码,然后将用户输入的令牌存储到HTML5会话存储中,以便稍后刷新页面,并显示完整内容。。。请注意,我对两种情况下的双因素条件进行了liveToken/inputToken比较,因为如果用户没有启用双因素身份验证,理想情况下,两个值都是未定义的

我现在遇到的问题是,我的inputOken变量返回以下错误:

无法读取未定义的属性“userToken”

我知道这是因为Jade变量是在服务器端解释/执行的,而服务器不知道sessionStorage是什么(因为它是客户端的对象);但我想知道是否有可能以某种方式完成我想在这里做的事情(例如,让jade在客户端上解释InputOken变量,从而在刷新视图后,使其值可用于以后的条件)


有什么想法吗?

如果您想访问客户端输入的内容,我想您除了将其与cookie一起发送到服务器之外别无选择。如果我已经很好地理解了什么是会话存储,那么它可以在导航之间保存数据,并避免像cookie那样将数据发送到服务器。事实上,我不想将输入发送到服务器,我想在客户端保留比较过程,因此使用会话存储。我只需要Jade为Mei存储/识别该变量如果你想在客户端进行比较,你就不能使用Jade(除非你的Jade模板在客户端解释,但在这种情况下,客户端可以访问liveToken值),最后使用了一个带重定向的普通会话变量和一些用于此的中间件。。。实现所需实现的任何解决方案(问题中所示的解决方案)都很好。。。我只是认为,如果有某种方法可以从Jade模板访问sessionStorage并与它的内容交互,那么它可能会很有用。