mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
31 lines
1.2 KiB
JavaScript
31 lines
1.2 KiB
JavaScript
Accounts.oauth.registerService('google');
|
|
|
|
if (Meteor.isClient) {
|
|
Meteor.loginWithGoogle = function(options, callback) {
|
|
// support a callback without options
|
|
if (! callback && typeof options === "function") {
|
|
callback = options;
|
|
options = null;
|
|
}
|
|
|
|
var credentialRequestCompleteCallback = Accounts.oauth.credentialRequestCompleteHandler(callback);
|
|
Google.requestCredential(options, credentialRequestCompleteCallback);
|
|
};
|
|
} else {
|
|
Accounts.addAutopublishFields({
|
|
forLoggedInUser: _.map(
|
|
// publish access token since it can be used from the client (if
|
|
// transmitted over ssl or on
|
|
// localhost). https://developers.google.com/accounts/docs/OAuth2UserAgent
|
|
// refresh token probably shouldn't be sent down.
|
|
Google.whitelistedFields.concat(['accessToken', 'expiresAt']), // don't publish refresh token
|
|
function (subfield) { return 'services.google.' + subfield; }),
|
|
|
|
forOtherUsers: _.map(
|
|
// even with autopublish, no legitimate web app should be
|
|
// publishing all users' emails
|
|
_.without(Google.whitelistedFields, 'email', 'verified_email'),
|
|
function (subfield) { return 'services.google.' + subfield; })
|
|
});
|
|
}
|