Ich bin etwas neu in Node.js Entwicklung und arbeite derzeit an einem Haustier-Projekt in meiner Freizeit.Was ist der beste Weg, um Pass-Facebook und Pass-JWT zu mischen?
Bisher habe ich JWT-Authentifizierung mit passport und passport-jwt für die Strategie erstellt und ich verwende es in allen meiner RESTful APIs.
Jetzt denke ich daran, dies mit einer Art von Facebook-Authentifizierung zu mischen, die immer noch mit Token-Authentifizierung bleiben wollen.
Derzeit ist dies, wie ich zu erzeugen und das Token zu erhalten:
exports.authenticate = function(req, res) {
User.findOne({
email: req.body.email
}, function(err, user) {
if (err)
return res.status(400).send(getErrorMessage(err));
if (!user) {
res.status(400).send({
success: false,
message: 'Authentication failed. User not found.'
});
} else {
if (user.checkPassword(req.body.password)) {
let token = jwt.encode(user, config.secretPhrase);
res.json({
success: true,
token: 'JWT ' + token
});
} else {
res.status(401).send({
success: false,
message: 'Authentication failed. Wrong password.'
});
}
}
});
};
app.route('/api/users/authenticate')
.post(user.authenticate);
Und ich zur Validierung Folgendes tun:
let user = require('../../app/controllers/user-controller');
app.route('/api/todos')
.get(user.validateLogin, todos.list)
.post(user.validateLogin, todos.create);
Benutzer-Controller:
exports.validateLogin = passport.authenticate('jwt', {
session: false
});
Jedermann kann einen guten Weg vorschlagen, die beiden Strategien zu kombinieren? Soll ich express-jwt verwenden? Was ist der Unterschied zwischen Express-JWT und Pass-JWT?