Autenticación de inicio de sesión social a través de loopback-pasaporte

Estoy empezando a ganar terreno con loopback api . Actualmente estoy tratando de integrar la autenticación a través del inicio de sesión social para mi aplicación. He encontrado tres páginas que indican cómo lograr esto, pero todas muestran esto de manera un poco diferente y poco clara: github-loopback-component-passport & npmjs-loopback-component-passport & github-loopback-component-passport-example . Estoy un poco confundido en cuanto a cuál es el proceso más actualizado. ¿Puede alguien arrojar algo de luz sobre cómo integrar mejor el inicio de sesión social con loopback? Además, ¿cómo probarlo para rutas que pueden requerir tokens de acceso? Aquí está el Github Repo del proyecto.

Dependencias actuales

 "dependencies": { "compression": "^1.0.3", "cors": "^2.5.2", "lodash": "^3.10.1", "loopback": "^2.26.2", "loopback-boot": "^2.6.5", "loopback-component-explorer": "^2.1.0", "loopback-connector-mysql": "^2.2.0", "loopback-datasource-juggler": "^2.19.0", "loopback-stormpath": "0.0.1", "serve-favicon": "^2.0.1", "passport": "^0.3.2", "underscore": "^1.8.2" } 

De acuerdo con la documentación proporcionada aquí en –

https://www.npmjs.com/package/loopback-passport

Solo tiene que instalar el módulo npm loopback-passport y agregar lo siguiente a su proyecto:

1) proveedores.json: esto definirá la configuración para los proveedores de autenticación de terceros que desea usar como facebook, google plus, etc. 2) En su server.js defina la configuración predeterminada de pasaporte como se muestra en el enlace como este:

 var loopback = require('loopback'); var path = require('path'); var app = module.exports = loopback(); // Create an instance of PassportConfigurator with the app instance var PassportConfigurator = require('loopback-passport').PassportConfigurator; var passportConfigurator = new PassportConfigurator(app); app.boot(__dirname); ... // Enable http session app.use(loopback.session({ secret: 'keyboard cat' })); // Load the provider configurations var config = {}; try { config = require('./providers.json'); } catch(err) { console.error('Please configure your passport strategy in `providers.json`.'); console.error('Copy `providers.json.template` to `providers.json` and replace the clientID/clientSecret values with your own.'); process.exit(1); } // Initialize passport passportConfigurator.init(); // Set up related models passportConfigurator.setupModels({ userModel: app.models.user, userIdentityModel: app.models.userIdentity, userCredentialModel: app.models.userCredential }); // Configure passport strategies for third party auth providers for(var s in config) { var c = config[s]; c.session = c.session !== false; passportConfigurator.configureProvider(s, c); } 

Después de esto, puede consultar los diferentes SDK de cliente proporcionados para realizar solicitudes de inicio de sesión o autenticación social y usarlos para registrar y registrar usuarios.