From 40e8b61fbfe5282c61652c33c53a0ad6095179c2 Mon Sep 17 00:00:00 2001 From: Berkeley Martinez Date: Thu, 4 Jun 2015 14:20:37 -0700 Subject: [PATCH] Set up datasources properly for production --- server/datasources.json | 5 +--- ...es.development.js => datasources.local.js} | 0 server/server.js | 24 ++++++++++++++++++- 3 files changed, 24 insertions(+), 5 deletions(-) rename server/{datasources.development.js => datasources.local.js} (100%) diff --git a/server/datasources.json b/server/datasources.json index 4ce65a253f..006eaaf8b5 100644 --- a/server/datasources.json +++ b/server/datasources.json @@ -1,9 +1,6 @@ { "db": { "name": "db", - "connector": "mongodb", - "host": "127.0.0.1", - "database": "foobar", - "port": 27017 + "connector": "mongodb" } } diff --git a/server/datasources.development.js b/server/datasources.local.js similarity index 100% rename from server/datasources.development.js rename to server/datasources.local.js diff --git a/server/server.js b/server/server.js index 3f1d8b6983..5aa78986a5 100755 --- a/server/server.js +++ b/server/server.js @@ -34,6 +34,8 @@ var R = require('ramda'), */ secrets = require('./../config/secrets'); +var generateKey = + require('loopback-component-passport/models/utils').generateKey; /** * Create Express server. */ @@ -199,10 +201,30 @@ passportConfigurator.setupModels({ userCredentialModel: app.models.userCredential }); +var passportOptions = { + profileToUser: function(provider, profile) { + var emails = profile.emails; + // NOTE(berks): get email or set to null. + // MongoDB indexs email but can be sparse(blank) + var email = emails && emails[0] && emails[0].value ? + emails[0].value : + null; + + var username = provider + '.' + (profile.username || profile.id); + var password = generateKey('password'); + var userObj = { + username: username, + password: password, + email: email + }; + return userObj; + } +}; + R.keys(passportProviders).map(function(strategy) { var config = passportProviders[strategy]; config.session = config.session !== false; - passportConfigurator.configureProvider(strategy, config); + passportConfigurator.configureProvider(strategy, config, passportOptions); }); /**