43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
|
oauth3.discover = function (providerUri, opts) {
|
||
|
opts = opts || {};
|
||
|
|
||
|
console.log('DEBUG oauth3.discover', providerUri);
|
||
|
console.log(opts);
|
||
|
if (opts.directives) {
|
||
|
return oauth3.PromiseA.resolve(opts.directives);
|
||
|
}
|
||
|
|
||
|
var promise;
|
||
|
var promise2;
|
||
|
var directives;
|
||
|
var updatedAt;
|
||
|
var fresh;
|
||
|
|
||
|
providerUri = oauth3.normalizeUrl(providerUri);
|
||
|
try {
|
||
|
directives = JSON.parse(localStorage.getItem('oauth3.' + providerUri + '.directives'));
|
||
|
console.log('DEBUG oauth3.discover cache', directives);
|
||
|
updatedAt = localStorage.getItem('oauth3.' + providerUri + '.directives.updated_at');
|
||
|
console.log('DEBUG oauth3.discover updatedAt', updatedAt);
|
||
|
updatedAt = new Date(updatedAt).valueOf();
|
||
|
console.log('DEBUG oauth3.discover updatedAt', updatedAt);
|
||
|
} catch(e) {
|
||
|
// ignore
|
||
|
}
|
||
|
|
||
|
fresh = (Date.now() - updatedAt) < (24 * 60 * 60 * 1000);
|
||
|
|
||
|
if (directives) {
|
||
|
promise = oauth3.PromiseA.resolve(directives);
|
||
|
|
||
|
if (fresh) {
|
||
|
//console.log('[local] [fresh directives]', directives);
|
||
|
return promise;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
promise2 = oauth3._discoverHelper(providerUri, opts);
|
||
|
|
||
|
return promise || promise2;
|
||
|
};
|