限制用户访问 Node.js
Limit acces to users Node.js
我想将对 /secrets
路由的访问限制为仅用户
app.get("/secrets", function(req, res){
Post.find({}, function(err, posts){
res.render("secrets", {
posts: posts
});
});
});
我知道应该是这样的:
app.get("/secrets", function(req, res){
if (req.isAuthenticated()){
res.render("secrets");
} else {
res.redirect("/login");
}
});
但我不知道如何进行,因为我已经有一个回调函数。
app.get('/secrets', checkAuthentication, function (req, res) {
Post.find({}, function (err, posts) {
res.render("secrets", {
posts: posts
});
});
});
function checkAuthentication(req, res, next) {
if (req.isAuthenticated()) {
next();
} else {
res.redirect("/login");
}
}
你可以使用像这样的中间件。
app.get("/secrets", secretsPermissionCheck, function(req, res){
// do your request processing
}
});
您可以在您的中间件文件夹中编写以下代码。
module.exports = function secretsPermissionCheck(req, res, next){
if(!isAuthenticated()) {
res.redirect("/login")
}else {
next();
}
}
您提供的第二个代码是包装器,因为您首先要检查用户是否经过身份验证。如果是,那么你正常操作,发送POST请求寻找posts
,如果不是,那么你redirect
登录。
app.get("/secrets", function(req, res){
if (req.isAuthenticated()){
//start
Post.find({}, function(err, posts){
res.render("secrets", {
posts: posts
});
});
//end
} else {
res.redirect("/login");
}
});
我想将对 /secrets
路由的访问限制为仅用户
app.get("/secrets", function(req, res){
Post.find({}, function(err, posts){
res.render("secrets", {
posts: posts
});
});
});
我知道应该是这样的:
app.get("/secrets", function(req, res){
if (req.isAuthenticated()){
res.render("secrets");
} else {
res.redirect("/login");
}
});
但我不知道如何进行,因为我已经有一个回调函数。
app.get('/secrets', checkAuthentication, function (req, res) {
Post.find({}, function (err, posts) {
res.render("secrets", {
posts: posts
});
});
});
function checkAuthentication(req, res, next) {
if (req.isAuthenticated()) {
next();
} else {
res.redirect("/login");
}
}
你可以使用像这样的中间件。
app.get("/secrets", secretsPermissionCheck, function(req, res){
// do your request processing
}
});
您可以在您的中间件文件夹中编写以下代码。
module.exports = function secretsPermissionCheck(req, res, next){
if(!isAuthenticated()) {
res.redirect("/login")
}else {
next();
}
}
您提供的第二个代码是包装器,因为您首先要检查用户是否经过身份验证。如果是,那么你正常操作,发送POST请求寻找posts
,如果不是,那么你redirect
登录。
app.get("/secrets", function(req, res){
if (req.isAuthenticated()){
//start
Post.find({}, function(err, posts){
res.render("secrets", {
posts: posts
});
});
//end
} else {
res.redirect("/login");
}
});