如何使用Express和Nodejs来保护静态路由
我使用Node(最新版本)+ Express,也是最新版本。 我有2个文件夹,公共和安全。 受保护的文件夹只能在login后访问。
我自己创build了一个login系统,现在我想知道如何保护到这个“安全文件夹”的路线。
我很想设置一个静态路由到我的“安全”文件夹(就像我用公共的一个),然后检查用户是否login,但它不工作。
这是我认为应该工作…
(...) app.use(express.static(path.join(__dirname, 'public'))); app.use(express.static(path.join(__dirname, 'secured'))); (...) function requireLogin(req, res, next) { if (req.session.loggedIn) { next(); // allow the next route to run } else { // require the user to log in res.redirect("/login"); } } app.all("/secured/*", requireLogin, function(req, res, next) { next(); });
在单独的路线上为您的私人静力学指定一个不同的文件夹
app.use(express.static(path.join(__dirname, 'public'))); app.use('/private', express.static(path.join(__dirname, 'private')));
然后你可以在每个请求中使用你的中间件
app.all('/private/*', function(req, res, next) { if (req.session.loggedIn) { next(); // allow the next route to run } else { // require the user to log in res.redirect("/login"); } })
在你的第一个app.use之前,
添加类似的东西
app.use(function(req, res, next) { if (req.url.match(/^\/secured\//)) { return requireLogin(req, res, next); } next(); })