2017-10-25 3 views
0

Es ist meine erste Erfahrung mit Pass-jwt. Ich habe die Strategie konfiguriert und alles funktioniert gut. Ich sende Token an den Client und extrahiere ihn aus der Kopfzeile mit der fromAuthHeaderAsBearerToken() -Methode. Aber ich habe ein Problem, ich möchte eine bestimmte Seite für den Fall rendern, wenn der Autorisierungsheader leer ist oder nicht gesetzt ist. Wie kann ich das tun, außer setup failureRedirect: '/ specific-page' Eigenschaft?Passport jwt und res.render

Der Code der Strategie ist ziemlich Standard:

JwtStrategy(jwtOptions, (payload, done) => { 
User.findOne({fmn_id: payload.data.id}) 
.then((obj) => { 
    if(!obj) throw new Error('No user with such id'); 
    done(null, obj); 
}) 
.catch((err) => { 
    res.render('specificPage'); //In case of error I want to render this page. Current code doesn't work. 
    done(null, err); 
}); 

}

Antwort

0

Sie eine bestimmte Vorlage res.render('path_to_template') mit machen kann Angenommen, Sie eine Vorlage in Ihre Ansichten Verzeichnis namens myfile.ejs dann können Sie dies machen von res.render('myfile')

Oder Sie können Benutzer auch auf eine andere Route umleiten mit res.redirect('/route');

+0

Vielen Dank für Ihre Antwort. Ich benutze Mops und ich habe spezifische Vorlage in meinem View-Verzeichnis. Aber das Problem ist, dass ich die nicht autorisierte Seite die ganze Zeit habe. Es scheint mir, dass res.render() in diesem Fall aus irgendeinem Grund nicht funktioniert. Ich möchte herausfinden, warum. –