首页 > 解决方案 > 如何在 Node.js 中使用引荐来源网址保护路由

问题描述

我正在尝试保护我的 node.js 应用程序中的路由,这样如果用户想要转到/post他们必须来自的页面/blog。如果用户来自其他任何地方,/blog他们将被重定向到/. 我有以下使用 http 引荐来源网址的代码

let ref = req.headers.referer;

if ((ref === undefined) || (!ref.includes('blog'))) {
  res.redirect('/')
}  

如果我使用 console.log 进行测试,它似乎运行良好,但如果我执行 res.redirect,我会收到错误

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client.

如何使用引荐来源网址来保护路线。

如果有任何其他方法可以在不使用引用的情况下完成此操作:欢迎所有建议。

提前致谢

标签: javascriptnode.js

解决方案


试试这个,在你的app.js文件中包含这个。

const express = require('express');
const app = express();

app.get('/',(req, res, next)=>{
  res.send('Ready')
});

app.get('/test',(req, res, next)=>{
  res.send('Ready')
});

// Below (*) will consider unwanted urls
app.use('/*', function(req, res, next) {
  res.redirect('/')
});


app.listen(4000);

仅供参考,如果您尝试demo.com/unkownurl将重定向到根目录,如demo.com/


推荐阅读