2014-11-14 2 views
0

Если у меня есть пользователя на веб-приложения с идентификатором = 555, как я даю ему доступ к URL-адресам только по:Node.js с экспресс - предотвращение доступа к определенным URL-адресам

www.example.com/users/555/home 

и помешать ему получение до

www.example.com/users/554/home 

etc?

Каков наилучший способ сделать это? В настоящее время я использую Passport.js для аутентификации.

ответ

2

В Express 4, use() может пойти по пути. Таким образом, очень слабо (и, вероятно, с ошибками), прежде чем поместить это приложение, получить(), app.put() и т.д. ...

app.use('/users/:id/:dir', function(req, res, next){ 
    if (checkAuth(lots of args)). // you have an id, dir, etc... 
    next(); // user is o.k. to proceed 
    else 
    send a 400 or whatever; and don't call next! 
}); 

В отличие от JimmyRare ответа, это охватывает все HTTP глаголы и все пользователи ,

Добавлено: Я не знаком с паспортом.js, так что часть должна быть заполнена кем-то другим. Паспорт экспертов, не стесняйтесь редактировать этот ответ.

1
app.get('/users/:id/home', function(req, res) { 
    if(req.params.id == 554) { 
    res.send('Thy art not allowed!'); 
    } 
}; 
+0

Вам нужно будет повторить для PUT, POST и т. Д. ... – user949300

Смежные вопросы