Я бы использовал: https://github.com/expressjs/session после аутентификации пользователя, тогда вы можете проверить правильные сеансы в контроллере, который обрабатывает маршрут экспресс-доставки.
Обновлено Ответ
Это, как я хотел бы сделать пользователь управления зарегистрированным
/**
* Module dependencies
*/
var express = require('express'),
http = require('http'),
session = require('express-session'),
app = module.exports = express();
/**
* Configuration
*/
// all environments
app.set('port', process.env.PORT || 3000);
app.set('trust proxy', 1);
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true,
cookie: {
secure: true
}
}));
function checkUserLoggedIn(req, res, next) {
return req.session;
}
/**
* Routes to control by default is logged in with a regular expression
*/
app.get('/user/:use_id/*', function (req, res, next) {
if (checkUserLoggedIn(req)) {
console.log('User logged');
next();
} else {
console.log('error');
}
});
/**
* User Home
*/
app.get('/user/:use_id/home/', function (req, res, next) {
if (checkUserLoggedIn(req)) {
console.log('User logged goes to home');
next();
} else {
console.log('error');
}
});
/**
* Home for user that is actually logged
*/
app.get('/guest/dashboard', function (req, res, next) {
console.log('This is guest dashboard');
});
/**
* Home for user that is actually logged
*/
app.get('/guest/home', function (req, res, next) {
console.log('This is guest home');
});
/**
* Start Server
*/
http.createServer(app).listen(app.get('port'), function() {
console.log('Express server listening on port ' + app.get('port'));
});
Затем запустите
$ узел app.js
Перейти в браузер и доступ http://localhost:3000/home
Регулярное выражение, которое вы определили для управления '/ *', получает всю маршрутизацию по умолчанию, а затем переходит к следующему маршруту, который соответствует, thats/home.
Это один из способов сделать это, возможно, есть более четкий и понятный способ решения проблемы. В регулярном выражении вы управляете тем, что вы имеете в виду с маршрутами по умолчанию, и для каждого конкретного случая.
Кажется, этот случай похож на это: http://stackoverflow.com/questions/18739725/how-to-know-if-user-is-logged-in-with-passport-js На конец вам не нужен cujojs/meld, как объясняется в этой связанной проблеме. –
Но это промежуточное программное обеспечение, которое вы написали, помещено в маршруты, которые необходимо защитить? Я прошу о том, чтобы по умолчанию требовать, чтобы все маршруты были защищены, и делайте исключения только для тех, которые не нуждаются в защите. – user779159
Я добавил пример кода, вы можете управлять по умолчанию для всех маршрутов, вы можете определить свои собственные критерии по умолчанию с reg exp. Элемент управления сеансом очень прост, но вы можете просто поставить критерии, которые вы хотите, в этом случае. –