cache directives, just a little bit
This commit is contained in:
parent
7de254d597
commit
a2b52b7619
|
@ -20,8 +20,19 @@
|
|||
if (!providerUri) {
|
||||
throw new Error('oauth3.discover(providerUri, opts) received providerUri as ' + providerUri);
|
||||
}
|
||||
var directives = OAUTH3.hooks.getDirectives(providerUri);
|
||||
if (directives && directives.issuer) {
|
||||
return OAUTH3.PromiseA.resolve(directives);
|
||||
}
|
||||
return browser._discoverHelper(providerUri, opts).then(function (directives) {
|
||||
directives.issuer = directives.issuer || OAUTH3_CORE.normalizeUrl(providerUri);
|
||||
console.log('discoverHelper', directives);
|
||||
return OAUTH3.hooks.setDirectives(providerUri, directives);
|
||||
});
|
||||
}
|
||||
, _discoverHelper: function (providerUri, opts) {
|
||||
opts = opts || {};
|
||||
opts.debug = true;
|
||||
//opts.debug = true;
|
||||
providerUri = OAUTH3_CORE.normalizeUrl(providerUri);
|
||||
if (window.location.hostname.match(providerUri)) {
|
||||
console.warn("It looks like you're a provider checking for your own directive,"
|
||||
|
@ -44,7 +55,6 @@
|
|||
return OAUTH3_CORE.formatError(providerUri, params.error);
|
||||
}
|
||||
var directives = JSON.parse(atob(OAUTH3_CORE.utils.urlSafeBase64ToBase64(params.result || params.directives)));
|
||||
directives.issuer = directives.issuer || OAUTH3_CORE.normalizeUrl(providerUri);
|
||||
return directives;
|
||||
}, function (err) {
|
||||
return OAUTH3.PromiseA.reject(err);
|
||||
|
|
20
oauth3.js
20
oauth3.js
|
@ -136,6 +136,9 @@
|
|||
return oauth3.PromiseA.resolve(oauth3.hooks.setSession(providerUri, oldSession));
|
||||
}
|
||||
, setSession: function (providerUri, newSession) {
|
||||
if (!providerUri) {
|
||||
console.error(new Error('no providerUri').stack);
|
||||
}
|
||||
providerUri = oauth3.core.normalizeUri(providerUri);
|
||||
console.warn('[oauth3.hooks.setSession] PLEASE IMPLEMENT -- Your Fault');
|
||||
console.warn(newSession);
|
||||
|
@ -149,6 +152,22 @@
|
|||
if (!oauth3.hooks._sessions) { oauth3.hooks._sessions = {}; }
|
||||
return oauth3.hooks._sessions[providerUri];
|
||||
}
|
||||
, setDirectives: function (providerUri, directives) {
|
||||
providerUri = oauth3.core.normalizeUri(providerUri);
|
||||
console.warn('[oauth3.hooks.setDirectives] PLEASE IMPLEMENT -- Your Fault');
|
||||
console.warn(directives);
|
||||
if (!oauth3.hooks._directives) { oauth3.hooks._directives = {}; }
|
||||
window.localStorage.setItem('directives-' + providerUri, JSON.stringify(directives));
|
||||
oauth3.hooks._directives[providerUri] = directives;
|
||||
return directives;
|
||||
}
|
||||
, getDirectives: function (providerUri) {
|
||||
providerUri = oauth3.core.normalizeUri(providerUri);
|
||||
console.warn('[oauth3.hooks.getDirectives] PLEASE IMPLEMENT -- Your Fault');
|
||||
if (!oauth3.hooks._directives) { oauth3.hooks._directives = {}; }
|
||||
return JSON.parse(window.localStorage.getItem('directives-' + providerUri) || '{}');
|
||||
//return oauth3.hooks._directives[providerUri];
|
||||
}
|
||||
|
||||
// Provider Only
|
||||
, setGrants: function (clientUri, newGrants) {
|
||||
|
@ -243,7 +262,6 @@
|
|||
client_id: providerUri
|
||||
, debug: opts.debug
|
||||
}).then(function (directive) {
|
||||
console.log('core.urls.grants(directive, opts)', core.urls.grants(directive, opts));
|
||||
return oauth3.request(core.urls.grants(directive, opts)).then(function (grantsResult) {
|
||||
if ('POST' === opts.method) {
|
||||
// TODO this is clientToken
|
||||
|
|
Loading…
Reference in New Issue