gpt4 book ai didi

node.js - Express.js ERR_TOO_MANY_REDIRECTS 错误

转载 作者:搜寻专家 更新时间:2023-11-01 00:23:19 25 4
gpt4 key购买 nike

这是场景。

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

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

应用程序.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;

indexController.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 时验证失败,它将重定向到/,这将显示给未经身份验证的用户。

关于node.js - Express.js ERR_TOO_MANY_REDIRECTS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33727433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com