Express.js ERR_TOO_MANY_REDIRECTS 错误

2024-03-16

这是场景。

如果用户想要查看需要用户访问的页面,我想将他重定向到主页,但是当我尝试访问主页时收到 ERR_TOO_MANY_REDIRECTS 错误。

我不知道如何解决这个问题。

app.js

exports.ensureAuthenticated = function (req, res, next) {
    jwt.verify(req.cookies.userToken, "NICETRY", function (err, decoded) {
        if (err) {
            res.redirect("http://localhost:4000");
        } else {
            // no err
            if (decoded.id) {
                req.id = decoded.id;
                req.iat = decoded.iat;
                next();
            } else {
                res.send("invalid cookie");
            }
        }
    });
};

路线/前端/index.js

var express = require('express');
var router = express.Router();

var indexController = require('../../controllers/frontend/indexController');
var auth = require('../../app').ensureAuthenticated;

router.get('/', auth, indexController.index);

module.exports = router;

索引控制器.js

exports.index = function (req, res) {
    res.render('frontend/home/index');
};

问题是,一旦身份验证失败,您就会重定向回同一页面,因此您的 EnsureAuthenticated 中间件会再次运行并再次重定向。

尝试创建一条经过身份验证的路由和一条未经身份验证的路由。

router.get('/', indexController.index);  // no auth necessary
router.get('/private', auth, indexController.private); // requires auth

现在,如果您在访问 /private 时验证失败,它将重定向到 / ,这将显示给未经身份验证的用户。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Express.js ERR_TOO_MANY_REDIRECTS 错误 的相关文章

随机推荐

  • 关系中的核心数据总和

    我有一个类别实体 有很多费用 我想获得给定月份内某个类别的所有费用总和 NSNumber totalForMonth NSDate date NSPredicate sumPredicate NSPredicate predicateWit
  • 为什么php的mail()函数发送邮件成功但字段为空?

    电子邮件已到达目标地址 但字段为空 原因是什么 我的使用mail 如下
  • 使用 keras 保存的 ML.NET 加载模型

    我有一个用 Python 和 Keras 实现的神经网络 训练完成后 我导出了模型 并得到了两个文件 model js 和 model h5 现在我想在 NET 项目中进行实时分类 并且我想使用经过训练的神经网络 ML NET 中是否有一种
  • 在 R 绘图子图上获取单独的轴标签

    使用 R 时plotly包版本 4 5 6 我无法弄清楚如何在使用组合多个图时显示轴标签subplot 以下是未显示 x 轴标签的示例 require plotly a lt data frame x1 1 3 y 30 32 b lt d
  • 获取 MongoDB 中数组的第 n 个元素

    作为 MongoDB 文档的一部分 我存储了一个对象数组 例如 如何仅查询数组的第四个元素 所以我不想取出整个数组 只取出第四个元素 Use slice db foo find bar xyz my array slice n 1 将检索
  • 没有名为flask_script的模块

    我正在尝试运行一个需要flask script 的程序 Flask既安装在我的机器上 又安装在虚拟环境中 我无法让我的机器或虚拟环境找到flask script 请指教 运行Ubuntu 你真的安装了 Flask Script 吗 如果没有
  • 从mongodb集合中获取最新记录

    我想知道集合中最新的记录 怎么做 注意 我知道以下命令行查询有效 1 db test find sort idate 1 limit 1 forEach printjson 2 db test find skip db test count
  • SQL ROW_NUMBER() 过度性能问题

    我有这个 SQL 工作正常 希望我的过滤器返回具有最高 UserSessionSequenceID 的最新唯一 SessionGuids 问题是性能很糟糕 即使我有很好的索引 我如何重写它 以省略 ROW NUMBER 行 SELECT T
  • 替换为相应的 的正则表达式

    我正在寻找 PHP preg replace 解决方案 找到图像链接并将其替换为相应的图像标签 Find a href http www domain tld any valid path to imagefile ext This wil
  • 如何在arch linux中降级到cuda 10.0?

    我想在 arch linux 中将我的 cuda 10 1 降级到 cuda 10 0 因为 TensorFlow 仅需要 cuda 10 0 我在 arch Linux 的 CUDA 10 1 上安装了tensorflow 但我不知道te
  • 为什么 SQL Server DATETIME 类型可以节省 1/300 秒的时间?

    SQLServer 日期时间格式存储为 8 个字节 其中前四个字节是自 1900 年 1 月 1 日以来的天数 其他四个字节是自午夜以来的刻度数 刻度为秒的 1 300 我想知道这是为什么 那1 300是从哪里来的呢 这其中一定有一些历史原
  • Android JavaCV 从相机创建 IplImage 以与 ColorHistogram 一起使用

    我在 Android 中使用 JavaCV 在我的代码中 我创建了一个 ImageComparator OpenCV CookBook 的类 http code google com p javacv source browse OpenC
  • 使用正斜杠与连字符的Javascript日期[重复]

    这个问题在这里已经有答案了 当我创建新的 Date 对象并使用连字符传递日期时 new Date 2015 07 02 I get Thu Jul 02 2015 01 00 00 GMT 0100 IST 当我使用正斜杠时 new Dat
  • NSButtonCell 作为 NSTableVIew 中的复选框未被选中

    我有一个用于多重选择的 NSTableVIew 有两列 第一列以 NSButtonCell 作为复选框 另一列作为标题 这个想法是检查要添加到数组后的项目 问题是当我单击复选框时 它们的状态不会改变 我尝试附加 IBAction 但发送动作
  • 如何使用 ClearCase 递归地“添加到源代码管理...”?

    我将 zip 文件交付解压到 Clearcase 视图中 现在我想将完整的文件树添加到存储库中 GUI 仅为单个文件 目录提供 添加到源代码管理 你知道如何递归添加整棵树吗 我使用的是 Windows 系统 但安装了 Cygwin 我宁愿使
  • 如何将 Spark 中的 StructType 分解为 json 数据帧中的行而不是列

    我用这个模式读取了一个嵌套的 json root company struct nullable true 0 string nullable true 1 string nullable true 10 string nullable t
  • 如何显示日期范围 Jquery 之间的多个日期范围

    您好 我有一个日期范围选择器 我想显示为特定日期范围定义的所有日期范围 如下所示 假设我的日期范围是 01 01 2017 01 07 2017 我有一个数组 其中定义了 db 中上述日期范围之间的所有日期 所以该数组如下 sub date
  • Keycloak invalid_token 未找到指定孩子的公钥

    我正在使用 keycloak 来保护我的休息服务 并且我能够获取令牌 但是当我使用此令牌来获取我的休息服务响应时 出现以下错误 HTTP 1 1 401 Unauthorized Cache Control no cache no stor
  • 应用程序池模式问题:经典还是集成

    我面临一个问题 希望您能给我一些指导 我有一个使用 spring net 和 ext net 库的 Asp net 4 0 网站应用程序 我已将其部署在 IIS 7 中 使用classic应用程序池模式并且它可以工作 它在集成模式下不起作用
  • Express.js ERR_TOO_MANY_REDIRECTS 错误

    这是场景 如果用户想要查看需要用户访问的页面 我想将他重定向到主页 但是当我尝试访问主页时收到 ERR TOO MANY REDIRECTS 错误 我不知道如何解决这个问题 app js exports ensureAuthenticate