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