mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
UIWebView which aren't able to use the preferred "popup" login flow. See the specs for details: https://meteor.hackpad.com/OAuth-redirect-flow-spec-PeziTcaNPDP https://meteor.hackpad.com/OAuth-redirect-flow-part-II-vswwUKP4vXe I extracted code to construct a URL from the `http` package into a new `url` utility package. The new package has no public API, it simply has the original URL construction functions that were in `http` and makes them available to oauth. Fixes the Meetup account login, as Meetup now requires using "https://api.meetup.com/2/members" instead of "https://secure.meetup.com/2/members". The `?close` parameter for the redirect URI is now not needed or used. For backwards compatibility the `?close` parameter is included if the login service configuration doesn't include the `loginStyle` field (indicating it was created using old code).
26 lines
853 B
JavaScript
26 lines
853 B
JavaScript
// connect middleware
|
|
OAuth._requestHandlers['2'] = function (service, query, res) {
|
|
// check if user authorized access
|
|
if (!query.error) {
|
|
// Prepare the login results before returning.
|
|
|
|
// Run service-specific handler.
|
|
var oauthResult = service.handleOauthRequest(query);
|
|
var credentialSecret = Random.secret();
|
|
|
|
var credentialToken = OAuth._credentialTokenFromQuery(query);
|
|
|
|
// Store the login result so it can be retrieved in another
|
|
// browser tab by the result handler
|
|
OAuth._storePendingCredential(credentialToken, {
|
|
serviceName: service.serviceName,
|
|
serviceData: oauthResult.serviceData,
|
|
options: oauthResult.options
|
|
}, credentialSecret);
|
|
}
|
|
|
|
// Either close the window, redirect, or render nothing
|
|
// if all else fails
|
|
OAuth._renderOauthResults(res, query, credentialSecret);
|
|
};
|