Also möchte ich einige Routen in einer API machen, die verschiedene Daten basierend auf der Benutzerrolle, definiert in MongoDB, zeigen. Hier ist eine Auswahl dessen, was ich jetzt habe, es funktioniert ...Überprüfen von Rollen und Authentifizierung mit Passport.js
router.get('/test', passport.authenticate('bearer', {session: false}), function (req, res) {
if (req.user.role == "premium") {
return res.send('you can see this content');
}
else {
return res.send('you can not see this content');
}
})
jedoch das Endziel ist mindestens etwas dem Benutzer zu präsentieren, auch wenn sie nicht eingeloggt sind oder authentifiziert mit die richtige Art von Rolle.
router.get('/test', passport.authenticate('bearer', {session: false}), function (req, res) {
if (req.user.role == "premium") {
return res.send('this is premium content');
}
else {
// could be hit by another role, or no user at all
return res.send([some truncated version of the premium content]);
}
})
Was ich denken würde, würde ich herausfinden, wie zu arbeiten, aber ich weiß nicht, wie die gleiche Strecke angeben, die möglicherweise ohne Authorization-Header in der Anfrage getroffen werden könnten.
Ist dies in Passport.js/Express möglich?
Sie werden Ihre eigene Gabel in ordoer das glaube ich – Vinz243
Fork den Paß repo zu ermöglichen, haben zu bauen und das Feature hinzuzufügen, ist das, was Sie meinen? –
Eher dieses, denke ich. Wenn Sie es verwenden. https://github.com/jaredhanson/passport-http-bearer. Die Linien, die Sie betrachten sollten, sind diese https://github.com/jaredhanson/passport-http-bearer/blob/master/lib/strategy.js#L89-101 – Vinz243