Ergebnis 1 bis 5 von 5
-
09-09-2016, 19:32 #1
Grünschnabel
- registriert
- 09-09-2016
- Beiträge
- 2
express + passport: Wie kann ich auf eingeloggt und Adminrechte prüfen?
Hallo erstmal,
bin zum ersten mal hier - arbeite auch grad an meinem ersten JS-Projekt... und hab prompt das erste Problem.
Ich möchte zwei Variablen definieren (isLoggedIn und isAdmin), die ich im Frontend verwenden kann. Ich hab in der app.js folgendes gemacht:
Code:app.use(function (req, res, next) { res.locals.isAdmin = false; res.locals.isLoggedIn = false; if(req.isAuthenticated()) { res.locals.isLoggedIn = true; isAdmin(req, res, next); } else { next(); } });
Code:function isAdmin(req, res, next) { User.findById(req.user._id, function(err, user) { if (err) throw err; if (user.isAdmin) { res.locals.isAdmin = true; } next(); }); }
Kann mir bitte irgendjemand helfen und mir sagen, wo mein Fehler ist?
Ganz herzlichen Dank schon mal im Voraus!
Hans
-
10-09-2016, 12:14 #2
AW: express + passport: Wie kann ich auf eingeloggt und Adminrechte prüfen?
Was macht denn die Funktion User.findById? Wann wirft die einen Fehler? Was passiert, wenn req.user nicht gesetzt ist? Was, wenn der Benutzer nicht gefunden werden kann?
Wie authentifizierst du genau? Mit Auth-Basic?
Wird etwas in die Console geschrieben?
Fragen über Fragen...
-
10-09-2016, 15:11 #3
Grünschnabel
- registriert
- 09-09-2016
- Beiträge
- 2
AW: express + passport: Wie kann ich auf eingeloggt und Adminrechte prüfen?
Also, ich versuch das mal auseinanderzudröseln:
- Ich verwende mongoose, findById ist eine mongoose-Funktion
- die Funktion isAdmin wird ja nur aufgerufen, wenn der User angemeldet ist, und deshalb von passport ja die userdaten in der session gespeichert sind - in isAdmin ist req.user also auf jeden Fall nicht leer.
- Das Problem, was passiert, wenn der Benutzer nicht gefunden werden kann, hab ich auf später geschoben, da ich glaub, dass das mit dem aktuellen Problem nichts zu tun hat.
- Authentifiziert wird ja via PassportJS über eine local strategy - oder wie soll ich Deine Frage verstehen? Das Authentifizieren klappt ja soweit alles...
- Der Client meldet irgendwann einen empty response Fehler und der server sagt gar nix. Gibt nur eine Meldung über den angefragten Pfad, das wars:
15:02:59 web.1 | GET /wellnessangebote - - ms - -
Kann es sein, dass ich in irgendein Asynchronitätsproblem laufe? Überspringt express einfach asynchron die if-else-Abfrage und läuft dann in einen hängenden Request (wie es in der expressjs doku genannt wird - zumindest so ähnlich)?
-
10-09-2016, 22:47 #4
AW: express + passport: Wie kann ich auf eingeloggt und Adminrechte prüfen?
Lass dir doch mal über console.log() an mehreren Stellen im Code einfach mal Statusmeldungen ausgeben. Dann weißt du, was da genau beim Server passiert und ab wenn er nicht mehr dort ist, wo du denkst, dass er ist.
-
19-09-2016, 11:33 #5
AW: express + passport: Wie kann ich auf eingeloggt und Adminrechte prüfen?
Hm ist zwar schon ein par tage alt, hoffe das wird keine Betragsleiche.
Zitat von rockie667
Zitat von rockie667
Mit sha1 Verschlüsslung.
Zitat von rockie667
Wenn über die aktuelle Middlewarefunktion der Anforderung/Antwort-Zyklus nicht beendet werden kann, muss next() aufgerufen werden, um die Steuerung an die nächste Middlewarefunktion zu übergeben. Andernfalls geht die Anforderung in den Status “Blockiert” über.
Habe mal gelesen das man Anwendung so schreiben soll das man ohne next() auskommt.
Ich hab jedenfalls noch nie next verwendet.
Ähnliche Themen
-
Quiz Nr2: Wie kann ich prüfen, ob meine Radiobuttons angeklickt sind?
Von DJay im Forum JavaScriptAntworten: 4Letzter Beitrag: 24-11-2009, 10:47 -
Wie kann ich prüfen, ob meine Radiobuttons angeklickt sind?
Von DJay im Forum JavaScriptAntworten: 2Letzter Beitrag: 20-11-2009, 08:41 -
Adminrechte bei PHPmyAdmin
Von brainshock im Forum Serverseitige ProgrammierungAntworten: 3Letzter Beitrag: 07-02-2003, 08:01 -
wie kann ich verfügbarkeit prüfen?
Von punster im Forum JavaScriptAntworten: 1Letzter Beitrag: 18-01-2002, 21:05 -
Eingeloggt um 12.45:45
Von V.I.P im Forum Serverseitige ProgrammierungAntworten: 3Letzter Beitrag: 27-06-2001, 14:26
Lesezeichen