Skip to content

Commit

Permalink
Add retrieveCredential server methods
Browse files Browse the repository at this point in the history
  • Loading branch information
timhaines authored and n1mmy committed May 18, 2013
1 parent 00efa2f commit a3f493b
Show file tree
Hide file tree
Showing 8 changed files with 39 additions and 2 deletions.
4 changes: 2 additions & 2 deletions packages/accounts-oauth/oauth_server.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Accounts.registerLoginHandler(function (options) {

check(options.oauth, {credentialToken: String});

if (!_.has(Oauth._loginResultForCredentialToken, options.oauth.credentialToken)) {
if (!Oauth.hasCredential(options.oauth.credentialToken)) {
// OAuth credentialToken is not recognized, which could be either because the popup
// was closed by the user before completion, or some sort of error where
// the oauth provider didn't talk to our server correctly and closed the
Expand All @@ -40,7 +40,7 @@ Accounts.registerLoginHandler(function (options) {
throw new Meteor.Error(Accounts.LoginCancelledError.numericError,
'No matching login attempt found');
}
var result = Oauth._loginResultForCredentialToken[options.oauth.credentialToken];
var result = Oauth.retrieveCredential(options.oauth.credentialToken);
if (result instanceof Error)
// We tried to login, but there was a fatal error. Report it back
// to the user.
Expand Down
4 changes: 4 additions & 0 deletions packages/facebook/facebook_server.js
Original file line number Diff line number Diff line change
Expand Up @@ -90,3 +90,7 @@ var getIdentity = function (accessToken) {
throw new Error("Failed to fetch identity from Facebook. " + err.message);
}
};

Facebook.retrieveCredential = function(credentialToken) {
return Oauth.retrieveCredential(credentialToken);
};
4 changes: 4 additions & 0 deletions packages/github/github_server.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,7 @@ var getIdentity = function (accessToken) {
throw new Error("Failed to fetch identity from GitHub. " + err.message);
}
};

Github.retrieveCredential = function(credentialToken) {
return Oauth.retrieveCredential(credentialToken);
};
4 changes: 4 additions & 0 deletions packages/google/google_server.js
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,7 @@ var getIdentity = function (accessToken) {
throw new Error("Failed to fetch identity from Google. " + err.message);
}
};

Google.retrieveCredential = function(credentialToken) {
return Oauth.retrieveCredential(credentialToken);
};
5 changes: 5 additions & 0 deletions packages/meetup/meetup_server.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,8 @@ var getIdentity = function (accessToken) {
throw new Error("Failed to fetch identity from Meetup: " + err.message);
}
};


Meetup.retrieveCredential = function(credentialToken) {
return Oauth.retrieveCredential(credentialToken);
};
11 changes: 11 additions & 0 deletions packages/oauth/oauth_server.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,16 @@ Oauth._unregisterService = function (name) {
// XXX we should periodically clear old entries
Oauth._loginResultForCredentialToken = {};

Oauth.hasCredential = function(credentialToken) {
return _.has(Oauth._loginResultForCredentialToken, credentialToken);
}

Oauth.retrieveCredential = function(credentialToken) {
result = Oauth._loginResultForCredentialToken[credentialToken];
delete Oauth._loginResultForCredentialToken[credentialToken];
return result;
}

// Listen to incoming OAuth http requests
__meteor_bootstrap__.app
.use(connect.query())
Expand Down Expand Up @@ -158,3 +168,4 @@ var closePopup = function(res) {
'<html><head><script>window.close()</script></head></html>';
res.end(content, 'utf-8');
};

5 changes: 5 additions & 0 deletions packages/twitter/twitter_server.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,8 @@ Oauth.registerService('twitter', 1, Twitter._urls, function(oauthBinding) {
}
};
});


Twitter.retrieveCredential = function(credentialToken) {
return Oauth.retrieveCredential(credentialToken);
};
4 changes: 4 additions & 0 deletions packages/weibo/weibo_server.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,3 +67,7 @@ var getIdentity = function (accessToken, userId) {
throw new Error("Failed to fetch identity from Weibo. " + err.message);
}
};

Weibo.retrieveCredential = function(credentialToken) {
return Oauth.retrieveCredential(credentialToken);
};

0 comments on commit a3f493b

Please sign in to comment.