tutorial node management node.js passport-facebook passport.js

node.js - node - passport npm



passport.js con múltiples proveedores de autenticación? (1)

¿Usando Passport.js hay una manera para que especifique múltiples proveedores de autenticación para la misma ruta?

Por ejemplo (de la guía del pasaporte) ¿puedo usar estrategias locales, de Facebook y de Twitter en la ruta de muestra a continuación?

app.post(''/login'', passport.authenticate(''local''), /* how can I add other strategies here? */ function(req, res) { // If this function gets called, authentication was successful. // `req.user` contains the authenticated user. res.redirect(''/users/'' + req.user.username); });


El middleware de Passport está construido de una manera que le permite usar múltiples estrategias en una llamada de passport.authenticate(...) .

Sin embargo, se define con un orden OR. Esto es, solo fallará si ninguna de las estrategias tuvo éxito.

Así es como lo usarías:

app.post(''/login'', passport.authenticate([''local'', ''basic'', ''passport-google-oauth'']), /* this is how */ function(req, res) { // If this function gets called, authentication was successful. // `req.user` contains the authenticated user. res.redirect(''/users/'' + req.user.username); });

En otras palabras, la forma de usarlo es pasar una matriz que contiene el nombre de las estrategias con las que desea que el usuario se autentique.

Además, no olvide configurar previamente las estrategias que desea implementar.

Puede confirmar esta información en los siguientes archivos github:

Autentica con el uso de basic o digest en multi-auth.

La definición de authenticate.js de Passport