【问题标题】:NodeJs - How to redirect to a specific pageNodeJs - 如何重定向到特定页面
【发布时间】:2018-06-29 13:36:08
【问题描述】:

我目前正在使用 NodeJS 服务器。我使用if 语句验证条件。如果credentials 无效,例如如何将用户转到特定页面?

if (credentials) {
   // go to the main page
}
else {
   // go the login page
}

【问题讨论】:

  • 你是在使用 Node.js 的内置 HTTP API,还是像 Express 或 Koa 这样的框架?你的研究结果是什么?
  • NodeJs server 那是什么?
  • 目前我正在使用 Express 和内置 HTTP API
  • app.get('/informations.html', function(req, res) { res.sendFile(__dirname + '/informations.html'); });
  • @Keith用Nodejs托管一个网站,后端是一个javascript程序

标签: javascript node.js


【解决方案1】:

您说过您正在使用 ExpressJS。在 ExpressJS 中,您通过 res.redirect 进行重定向:

res.redirect([status,] path)

重定向到派生自指定path 的URL,指定status,一个对应于HTTP 状态代码的正整数。如果未指定,status 默认为“302“找到”。

【讨论】:

    【解决方案2】:

    首先,您需要确定所使用的身份验证类型。有上百万种方法可以做到这一点,但如果您对身份验证系统不太熟悉,我建议您使用第三方身份验证系统,如 FacebookGoogle 登录。这些通常会在登录时为您提供某种身份验证令牌,基本上您可以检查存储的令牌是否存在,是否在缓存、cookie、本地存储等中,以及它是否尚未过期。如果一切正常,请继续,如果没有,则重定向到登录页面。

    如果您想让这更安全,请不要在客户端编写任何凭据验证。让客户端的浏览器检查身份验证令牌及其新近度,然后将其发送到服务器。然后,服务器将通过将您路由到正确的页面来做出响应。

    可能应该与此同时使用的另一种方法是检查用户需要登录的每个页面上的有效登录,而不是只有一个页面重定向到登录屏幕或您想去的地方。

    【讨论】:

    • “首先,您需要确定您使用的是哪种身份验证...” 嗯...为什么?
    • 您的回答很好,但我遇到的技术困难不是架构问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-21
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    • 2015-10-19
    • 1970-01-01
    相关资源
    最近更新 更多