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;
 | 
						|
  };
 |