all files / express-stormpath/lib/helpers/ build-provider-model.js

78.57% Statements 11/14
100% Branches 2/2
50% Functions 1/2
78.57% Lines 11/14
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23                       
'use strict';
 
var xtend = require('xtend');
 
var getHost = require('./get-host');
var resolveStateToken = require('../oauth/common').resolveStateToken;
 
function buildProviderModel(req, res) {
  var config = req.app.get('stormpathConfig');
  var oauthStateToken = resolveStateToken(req, res);
  var baseUrl = config.web.baseUrl || req.protocol + '://' + getHost(req);
  var providers = xtend({}, config.web.social);
 
  Object.keys(providers).forEach(function (providerId) {
    var provider = providers[providerId];
    provider.authorizeUri = provider.authorizeUri.replace(/{state}/, oauthStateToken);
    provider.authorizeUri = provider.authorizeUri.replace(/{redirectUri}/, baseUrl + provider.redirectUri);
  });
 
  return providers;
}
 
module.exports = buildProviderModel;