2016-07-20 7 views
0

Использование stormpath.groupsRequired промежуточного вызова,StormPath группы авторизации с помощью экспресс-stormpath

router.get ('/', stormpath.loginRequired, stormpath.groupsRequired ([ 'org1-администратора']), функция (REQ, res) { res.render ('index', {}); });

Я не могу жестко задавать роль «org1-admin», какие у меня есть параметры? Если я помещу это в сеанс, сеанс недоступен для промежуточного программного обеспечения. Есть предположения?

Роль пользователя 'org1-admin' будет идентифицироваться при запуске приложения на основе параметра org1, переданного в исходном URL запроса запуска, и роли 'admin', прочитанной из записи конфигурации.

После первоначального запуска эта роль должна быть доступна для последующих маршрутов для авторизации. Цените свою обратную связь!

+0

Можете ли вы пояснить, что подразумевается под «будет идентифицироваться при запуске приложения на основе параметра org1, переданного в исходном URL запроса запуска»? Определена ли организация для всего процесса сервера или только один запрос? – robertjd

+0

org идентифицирован не для всего процесса сервера, он специфичен для этого сеанса пользователя. – Faizal

ответ

2

Если группа для проверки определяется на основе каждого запроса, вам нужно изменить поток использовать groupsRequired промежуточное программное обеспечение больше как функции:

app.get('/', stormpath.loginRequired, function (req, res) { 
    var group = 'foo'; // grab the group from your request context 

    stormpath.groupsRequired([group])(req,res,function(){ 
    // If we got here, the user is in the group. Otherwise the groupsRequired middleware would have ended the response with 403 
    res.render('index', {}); 
    }); 
}); 

Я надеюсь, что это помогает! Это хороший прецедент, и я хотел бы добавить что-то в эту библиотеку, что облегчает это.

+0

yes..moving from middleware для вызова функции является опцией. благодаря! – Faizal