2016-07-20 9 views
0

Mit stormpath.groupsRequired Middleware AnrufStormPath Gruppen Autorisierung mithilfe Express-stormpath

router.get ('/', stormpath.loginRequired, stormpath.groupsRequired ([ 'ORG1-admin']), Funktion (REQ, res) { res.render ('index', {}); });

Ich kann die Rolle 'org1-admin' nicht hartcodieren, welche Optionen habe ich? Wenn ich dies in eine Sitzung lege, ist die Sitzung für Middleware nicht verfügbar. Irgendwelche Gedanken?

Die Benutzerrolle 'org1-admin' wird identifiziert, wenn die Anwendung gestartet wird, basierend auf dem Parameter org1, der in der initialen Launcheranfrage-URL übergeben wurde, und der 'admin'-Rolle aus dem config-Eintrag.

Nach dem ersten Start sollte diese Rolle für nachfolgende Routen zur Autorisierung verfügbar sein. Ich bedanke mich für ihre Rückmeldung!

+0

Können Sie klarstellen, was mit "Wird identifiziert werden, wenn die App gestartet wird, basierend auf dem org1-Parameter, der in der ursprünglichen Startanforderungs-URL übergeben wurde" gemeint ist? Wird die Organisation für den gesamten Serverprozess oder nur eine einzelne Anfrage identifiziert? – robertjd

+0

org wird nicht für den gesamten Serverprozess identifiziert, sondern für diese Benutzersitzung. – Faizal

Antwort

2

Wenn die Gruppe zu prüfen, auf einer Pro-Anfrage und bestimmt wird, müssen Sie den Fluss modifizieren, um die groupsRequired Middleware verwenden, eher wie eine Funktion:

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', {}); 
    }); 
}); 

Ich hoffe, das hilft! Dies ist ein guter Anwendungsfall und ich möchte etwas zu dieser Bibliothek hinzufügen, was es einfacher macht, dies zu tun.

+0

ja .. Verschieben von Middleware zu einem Funktionsaufruf ist eine Option. Vielen Dank! – Faizal

Verwandte Themen