From f7b6aa47a6d23c39cb1698305aaeca487c8adc0c Mon Sep 17 00:00:00 2001 From: Tom Coleman Date: Wed, 28 May 2014 13:23:04 +1000 Subject: [PATCH 1/2] Added a `userEmail` option to MD accounts oauth. --- .../meteor-developer.js | 2 +- .../meteor-developer/meteor_developer_client.js | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/packages/accounts-meteor-developer/meteor-developer.js b/packages/accounts-meteor-developer/meteor-developer.js index 55e131b798..79ac4e4c2c 100644 --- a/packages/accounts-meteor-developer/meteor-developer.js +++ b/packages/accounts-meteor-developer/meteor-developer.js @@ -10,7 +10,7 @@ if (Meteor.isClient) { var credentialRequestCompleteCallback = Accounts.oauth.credentialRequestCompleteHandler(callback); - MeteorDeveloperAccounts.requestCredential(credentialRequestCompleteCallback); + MeteorDeveloperAccounts.requestCredential(options, credentialRequestCompleteCallback); }; } else { Accounts.addAutopublishFields({ diff --git a/packages/meteor-developer/meteor_developer_client.js b/packages/meteor-developer/meteor_developer_client.js index 239afec978..82d7ca7c98 100644 --- a/packages/meteor-developer/meteor_developer_client.js +++ b/packages/meteor-developer/meteor_developer_client.js @@ -4,7 +4,13 @@ MeteorDeveloperAccounts = {}; // @param credentialRequestCompleteCallback {Function} Callback function to call on // completion. Takes one argument, credentialToken on success, or Error on // error. -var requestCredential = function (credentialRequestCompleteCallback) { +var requestCredential = function (options, credentialRequestCompleteCallback) { + // support a callback without options + if (! credentialRequestCompleteCallback && typeof options === "function") { + credentialRequestCompleteCallback = options; + options = null; + } + var config = ServiceConfiguration.configurations.findOne({ service: 'meteor-developer' }); @@ -20,8 +26,12 @@ var requestCredential = function (credentialRequestCompleteCallback) { METEOR_DEVELOPER_URL + "/oauth2/authorize?" + "state=" + credentialToken + "&response_type=code&" + - "client_id=" + config.clientId + - "&redirect_uri=" + Meteor.absoluteUrl("_oauth/meteor-developer?close"); + "client_id=" + config.clientId; + + if (options && options.userEmail) + loginUrl += '&user_email=' + encodeURIComponent(options.userEmail); + + loginUrl += "&redirect_uri=" + Meteor.absoluteUrl("_oauth/meteor-developer?close"); OAuth.showPopup( loginUrl, From ab6091ef43608af744c5c90de89f28afc4646c6c Mon Sep 17 00:00:00 2001 From: Emily Stark Date: Tue, 10 Jun 2014 15:11:23 -0700 Subject: [PATCH 2/2] Add docs for Meteor.loginWithMDA userEmail option. --- docs/client/api.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/client/api.js b/docs/client/api.js index b9aba4c706..c2686b3aac 100644 --- a/docs/client/api.js +++ b/docs/client/api.js @@ -1133,6 +1133,11 @@ Template.api.loginWithExternalService = { name: "forceApprovalPrompt", type: "Boolean", descr: "If true, forces the user to approve the app's permissions, even if previously approved. Currently only supported with Google." + }, + { + name: "userEmail", + type: "String", + descr: "An email address that the external service will use to pre-fill the login prompt. Currently only supported with Meteor developer accounts." } ] };