Als Middleware für Node wird damit der Request, genau das Request.token validiert und bei einem unvaliden Token ein 401 zurückgegeben.benneque schrieb:Was macht der Code `passport.authenticate('jwt', {session:false})`?
Da gab es noch einen Fehler mit einer Klammer, den hab ich eben korrigiert. Normalerweise gehört das alles zum ersten If.benneque schrieb:Deine `decoded` Variable wird im falschen Scope deklariert. Die sollte vor dem `if(req.headers ...)` deklariert werden. Die Variable wird ja auch schließlich nach dem `if`-Block wieder benutzt.
Da hab ich getrickst ... zumindest war das die Idee. Ich musste ja irgendwie den Querverweis auf den User hinbekommen. Also gibt es im UserSchema einen Eintrag :benneque schrieb:`UserRights.findById` klingt irgendwie nicht logisch. Da geht's ja nicht um IDs, oder?
userRights: {
type: mongoose.Schema.Types.ObjectId,
ref: 'UserRights'
},
dementsprechend kann ich nach der ID suchen und bekomme dann die Rechte des Users übermittelt. Hier muss man aber aufpassen, in welchem Dialog man ist. Zumeist handelt es sich bei den abzufragenden Rechten um die des Users von welchem der Request kommt. Ab und zu möchte ich aber ja auch wissen, welche Rechte andere User haben oder ich möchte im Namen eines anderen Benutzers Aktionen tätigen, sofern diese für den anderen Benutzer zulässig sind.
Da muss ich mich auch erstmal reinfummeln... mal bei Google gucken, wofür die ganzen einzelnen Codes stehen, danke :-)benneque schrieb:Die HTTP Codes sind auch nicht unbedingt korrekt. Nicht alles ist 401 An machen Stellen passt 400 oder 403 besser.
Da muss ich mir noch mal anschauen, wie man diese Funktion global implementiert.benneque schrieb:Und der gesamte `if(req.headers ...) { ... }` Block sollte in eine eigene Funktion ausgelagert werden. Den exakt selben Code musst du ja bei jedem Request ausführen. Und aktuell musst du die 10 Zeilen jedes mal kopieren.
Das sind alles nur Kleinigkeiten, hat viel mit Code Style zu tun. Also für die eigentliche Funktion des Programms ist es natürlich nicht so wichtig, aber sobald man mit mehreren Leuten im Team arbeitet ist es sau praktisch. Dafür gibt's schließlich Standards
Aktuell arbeite ich alleine dran, sonst hätte ich evtl. schon früher einen Rüffel bekommen. Ist für mich aber natürlich auch wichtig, mich an der Stelle an Standards zu halten weshalb ich deine ganzen Sachen hier echt gerne aufsauge, danke! :-)