【问题标题】:Load page if there is a session, else redirect如果有会话则加载页面,否则重定向
【发布时间】:2017-05-10 03:33:30
【问题描述】:

所以,基本上,我想做一个非常简单的检查,如果没有会话登录,那么我将用户重定向到signin.html,我可以通过向我的服务器发出 ajax 请求来做到这一点'会回复我,然后在前端我会做类似的事情

if(session){
    //continue
}else{
    window.location.href="signup.html"
}

但是,我的问题是,在 1 秒左右的时间里,服务器需要做出响应,因为您不能再使用同步 ajax 请求,所以我的 HTML 一直在后台加载,允许用户在一段时间内看到它瞬间,我正在尝试做一些事情,例如,如果您在未登录的情况下尝试访问 www.youtube.com/account,它会将您重定向到谷歌登录,甚至不加载其 account.html。我也是节点的新手......因此我的问题......我想我可能需要在服务器端做这个,但我不知道怎么做。提前致谢。

【问题讨论】:

  • 您可以将所有的 HTML 放在 if (session) { 代码块中。
  • 我认为实际上更正确的方法是让您的服务器端代码处理您在问题中提到的这种逻辑。

标签: javascript node.js express express-session


【解决方案1】:

如果您使用的是 express,您可以使用res.render() 在会话登录之前不将视图发送给客户端。

if(session){
    res.render(indexHtml);
}else{
    res.render(signupHtml);
}

【讨论】:

  • 好的,我可以把这个放在哪里?就像,我需要把它放在一旦触发重定向或某事发生的事情中
  • 你可以把它放在路由的回调中,比如app.get('/', sessionCallback)。所以当浏览器调用index.html(使用'/'表示路由与'/index.html'相同)时,express服务器会执行会话检查并返回相应的模板。
猜你喜欢
  • 1970-01-01
  • 2014-06-20
  • 1970-01-01
  • 2021-10-07
  • 1970-01-01
  • 2019-02-08
  • 1970-01-01
  • 2021-05-06
  • 2016-04-01
相关资源
最近更新 更多