2015-11-28 3 views
0

Я пытаюсь узнать, как сделать приложение с несколькими арендаторами со штурмовитом и узлом с экспресс. Это документ official по этой теме. На данный момент я использую express-stormpath lib, чтобы сделать мой логин и прочее. Но я не могу найти, как я делаю мульти-арендатора.Stormpath multi-tenant express

ОБНОВЛЕНИЕ Я получил его для работы с стратегией паспортного штурма. Я не знаю, правильно ли это, но он работает ... Проблема в том, как изменить динамику учетной записи в экспресс-версии? Похоже, что публичная объявленная переменная не так хороша?

var href = { 
    href: null 
} 

function hrefUrl(req, res, next){ 
    var host = req.headers.host; 
    var account = host.split(".")[0]; 

    spClient.getDirectories(function (err, directories) { 
    directories.each(function (dir, cb){ 
     if(account.toLowerCase() == dir.name.toLowerCase()){ 
     href.href = dir.href 
     } 
     cb(); 
    }, function (err){ 
     if(href.href == null){ 
     return res.redirect(301, 'http://dashboard.local.dev/selectCompany'); 
     } 
     next(); 
    }); 
    }); 
} 

// Authenticate a user. 
router.post('/login', hrefUrl, passport.authenticate('stormpath', 
    { 
     successRedirect: '/dashboard', 
     failureRedirect: '/login', 
     failureFlash: 'Invalid email or password.', 
     accountStore: href 
    } 
) 
); 

ответ

1

Экспресс-штурмовик предоставил API-интерфейсы для доступа к информации об учетной записи в вашем приложении. Эти учетные записи принадлежат каталогам. Из официального документа у вас есть два решения для поддержки мульти-арендатора. Один из них - создать группу для каждого арендатора, а другой - создать каталог для каждого арендатора.

Для любого решения, которое вы выбрали, вам нужно будет использовать API, предоставляемые express-stormpath, для доступа к этой информации, связанной с учетной записью.

Например, если вы создали разные каталоги для каждого арендатора, вам может потребоваться добавить бизнес-логику в отношении многопользователя в postLoginHandler.

app.use(stormpath.init(app, { 
    postLoginHandler: function (account, req, res, next) { 
     account.getDirectory(function(err, directory) { 
      console.log(directory) 
      // if directory is tenant-1 
      // if directory is tenant-2 
     }) 
    } 
}) 
+0

Спасибо за помощь. Но я все еще застрял ... Вот как я создал в администраторе stormpath admin: Одно приложение: APP1. Создано два каталога: CompanyA, CompanyB В учетных записях APP1 я добавил CompanyA и B. КомпанияA установлена ​​как «МЕСТО ПО УМОЛЧАНИЮ». Теперь я создаю 3 пользователя. 'User1 in ComapyA User2 in ComapyB User2 in ComapyA' Проблема, с которой я столкнулся сейчас, это будет отображаться только в CompanyA ... –

+0

Это мой случай, это только список. «Во время попытки входа в приложение Stormpath будет обращаться к хранилищам учетных записей в порядке приоритета». –

+0

Как вы создали список пользователей? Где вы видели, что он показывает только CopmanyA? – xtu

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

  • Нет связанных вопросов^_^