ストームパスを使用してマルチテナント アプリを作成し、エクスプレスを使用してノードを作成する方法を学習しようとしています。これは、そのトピックに関する公式文書です。今のところ、 express-stormpath lib を使用してログインなどを行っています。しかし、マルチテナントを行う方法が見つかりません。
更新 パスポートストームパス戦略で動作するようになりました。それが正しい方法かどうかはわかりませんが、機能します...問題は、エクスプレスバージョンでaccountStoreを動的に変更するにはどうすればよいですか? パブリック宣言された変数はあまり良くないような気がしますか?
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
}
)
);