Merge branch 'master' into v1.2
This commit is contained in:
commit
9a8d742ff1
|
@ -717,7 +717,9 @@
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Discovery must take place before calling implicitGrant
|
// Discovery must take place before calling implicitGrant
|
||||||
promise = OAUTH3._implicitGrant(OAUTH3.hooks.directives._getCached(providerUri), opts);
|
promise = OAUTH3.hooks.directives.get(providerUri).then(function (directives) {
|
||||||
|
return OAUTH3._implicitGrant(directives, opts);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return promise.then(function (tokens) {
|
return promise.then(function (tokens) {
|
||||||
|
@ -815,9 +817,11 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
, logout: function(providerUri, opts) {
|
, logout: function(providerUri, opts) {
|
||||||
return OAUTH3._logoutHelper(OAUTH3.hooks.directives._getCached(providerUri), opts);
|
return OAUTH3.hooks.directives.get(providerUri).then(function (directives) {
|
||||||
|
return OAUTH3._logoutHelper(directives, opts);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
, _logoutHelper: function(directives, opts) {
|
, _logoutHelper: function(providerUri, directives, opts) {
|
||||||
var logoutReq = OAUTH3.urls.logout(
|
var logoutReq = OAUTH3.urls.logout(
|
||||||
directives
|
directives
|
||||||
, { client_id: (opts.client_id || opts.client_uri || OAUTH3.clientUri(OAUTH3._browser.window.location))
|
, { client_id: (opts.client_id || opts.client_uri || OAUTH3.clientUri(OAUTH3._browser.window.location))
|
||||||
|
@ -843,7 +847,7 @@
|
||||||
return OAUTH3.PromiseA.reject(OAUTH3.error.parse(directives.issuer /*providerUri*/, params));
|
return OAUTH3.PromiseA.reject(OAUTH3.error.parse(directives.issuer /*providerUri*/, params));
|
||||||
}
|
}
|
||||||
|
|
||||||
OAUTH3.hooks.session.clear();
|
OAUTH3.hooks.session.clear(providerUri);
|
||||||
return params;
|
return params;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1390,22 +1394,24 @@
|
||||||
}
|
}
|
||||||
, login: function (opts) {
|
, login: function (opts) {
|
||||||
var me = this;
|
var me = this;
|
||||||
if (me.session()) {
|
return OAUTH3.hooks.session.get(me._identityProviderUri).then(function (session) {
|
||||||
me._session = true;
|
if (session) {
|
||||||
return OAUTH3.PromiseA.resolve(me.session());
|
me._session = true;
|
||||||
}
|
return session;
|
||||||
|
}
|
||||||
|
|
||||||
opts = opts || {};
|
opts = opts || {};
|
||||||
opts.client_uri = me._clientUri;
|
opts.client_uri = me._clientUri;
|
||||||
|
|
||||||
return OAUTH3.implicitGrant(me._identityProviderDirectives, opts).then(function (session) {
|
return OAUTH3.implicitGrant(me._identityProviderDirectives, opts).then(function (session) {
|
||||||
me._session = true;
|
me._session = true;
|
||||||
return session;
|
return session;
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
, session: function (session, id) {
|
, session: function (session, id) {
|
||||||
if (!session) {
|
if (!session) {
|
||||||
return JSON.parse(JSON.stringify(OAUTH3.hooks.session._getCached(this._identityProviderUri) || null));
|
return OAUTH3.hooks.session.get(this._identityProviderUri);
|
||||||
}
|
}
|
||||||
return OAUTH3.hooks.session.set(this._identityProviderUri, session, id);
|
return OAUTH3.hooks.session.set(this._identityProviderUri, session, id);
|
||||||
}
|
}
|
||||||
|
@ -1414,29 +1420,37 @@
|
||||||
preq.client_uri = this._clientUri;
|
preq.client_uri = this._clientUri;
|
||||||
preq.client_id = this._clientUri;
|
preq.client_id = this._clientUri;
|
||||||
preq.method = preq.method || 'GET';
|
preq.method = preq.method || 'GET';
|
||||||
if (this._session) {
|
|
||||||
preq.session = preq.session || this.session(); // OAUTH3.hooks.session._getCached(this._identityProviderUri);
|
|
||||||
}
|
|
||||||
// TODO maybe use a baseUrl from the directives file?
|
// TODO maybe use a baseUrl from the directives file?
|
||||||
preq.url = OAUTH3.url.resolve(this._resourceProviderUri, preq.url);
|
preq.url = OAUTH3.url.resolve(this._resourceProviderUri, preq.url);
|
||||||
|
|
||||||
return OAUTH3.request(preq, opts);
|
if (preq.session || !this._session) {
|
||||||
|
return OAUTH3.request(preq, opts);
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.session().then(function (session) {
|
||||||
|
preq.session = session;
|
||||||
|
return OAUTH3.request(preq, opts);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
, logout: function (opts) {
|
, logout: function (opts) {
|
||||||
this._session = false;
|
this._session = false;
|
||||||
opts = opts || {};
|
opts = opts || {};
|
||||||
opts.client_uri = this._clientUri;
|
return OAUTH3.hooks.session.get(this._identityProviderUri).then(function (session) {
|
||||||
opts.client_id = this._clientUri;
|
opts.client_uri = this._clientUri;
|
||||||
opts.session = OAUTH3.hooks.session._getCached(this._identityProviderUri);
|
opts.client_id = this._clientUri;
|
||||||
|
opts.session = session;
|
||||||
|
|
||||||
return OAUTH3.logout(this._identityProviderUri, opts);
|
return OAUTH3.logout(this._identityProviderUri, opts);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
, api: function (api, opts) {
|
, api: function (api, opts) {
|
||||||
opts = opts || {};
|
opts = opts || {};
|
||||||
opts.api = api;
|
return OAUTH3.hooks.session.get(this._identityProviderUri).then(function (session) {
|
||||||
opts.session = OAUTH3.hooks.session._getCached(this._identityProviderUri);
|
opts.api = api;
|
||||||
|
opts.session = session;
|
||||||
|
|
||||||
return OAUTH3.api(this._resourceProviderDirectives.api, opts);
|
return OAUTH3.api(this._resourceProviderDirectives.api, opts);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
, pkg: function (pkgname) {
|
, pkg: function (pkgname) {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
@ -1450,17 +1464,19 @@
|
||||||
return OAUTH3.PromiseA.reject(new Error("No Package for '" + pkgname + "'"));
|
return OAUTH3.PromiseA.reject(new Error("No Package for '" + pkgname + "'"));
|
||||||
}
|
}
|
||||||
|
|
||||||
pkg = OAUTH3._pkgs[pkgname];
|
return OAUTH3.hooks.session.get(issuer).then(function (session) {
|
||||||
Object.keys(pkg).forEach(function (key) {
|
pkg = OAUTH3._pkgs[pkgname];
|
||||||
result[key] = function (opts) {
|
Object.keys(pkg).forEach(function (key) {
|
||||||
opts = opts || {};
|
result[key] = function (opts) {
|
||||||
opts.session = OAUTH3.hooks.session._getCached(issuer);
|
opts = opts || {};
|
||||||
opts.audience = audience;
|
opts.session = session;
|
||||||
return pkg[key](opts);
|
opts.audience = audience;
|
||||||
};
|
return pkg[key](opts);
|
||||||
});
|
};
|
||||||
|
});
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
result.setIssuer = result.setIdentityProvider;
|
result.setIssuer = result.setIdentityProvider;
|
||||||
|
|
Loading…
Reference in New Issue