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