社交loginauthentication通过loopback护照

我开始获得loopback api理由。 目前我正在尝试通过社交login为我的应用程序集成身份validation。 我已经find了三个页面,说明如何适应这一点,但它们都显示了一点点不同和不清楚: github-loopback-component-passport & npmjs-loopback-component-passport & github-loopback-component-passport-example 。 我有点困惑,什么是最新的过程。 任何人都可以阐明如何最好地将社交login与环回结合? 另外,如何testing可能需要访问令牌的路由? 这是项目的Github Repo 。

目前的依赖关系

 "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" } 

根据这里提供的文件 –

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

您只需安装loopback-passport npm模块并将以下内容添加到您的项目中 –

1)providers.json – 这将定义您想要使用的第三方auth提供程序的configuration,如Facebook,谷歌加等。2)在你的server.js定义护照默认configuration如这样的链接中显示 –

 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); } 

之后,您可以查看提供的不同客户端sdks,以提出login或社交身份validation请求,并将其用于login和注册用户。