don't redirect attack your client, duh!
This commit is contained in:
		
							parent
							
								
									23d9268627
								
							
						
					
					
						commit
						7de254d597
					
				| @ -23,6 +23,19 @@ | ||||
|       opts = opts || {}; | ||||
|       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," | ||||
|           + " so we we're just gonna use OAUTH3.request({ method: 'GET', url: '.well-known/oauth3/directive.json' })"); | ||||
|         return OAUTH3.request({ | ||||
|           method: 'GET' | ||||
|         , url: OAUTH3.core.normalizeUrl(providerUri) + '/.well-known/oauth3/directives.json' | ||||
|         }); | ||||
|       } | ||||
| 
 | ||||
|       if (!window.location.hostname.match(opts.client_id || opts.client_uri)) { | ||||
|         console.warn("It looks like your client_id doesn't match your current window... this probably won't end well"); | ||||
|         console.warn(opts.client_id || opts.client_uri, window.location.hostname); | ||||
|       } | ||||
|       var discObj = OAUTH3_CORE.urls.discover(providerUri, { client_id: (opts.client_id || opts.client_uri || getDefaultAppUrl()), debug: opts.debug }); | ||||
| 
 | ||||
|       // TODO ability to reuse iframe instead of closing
 | ||||
| @ -146,7 +159,7 @@ | ||||
|           err.code = "E_TIMEOUT"; | ||||
|           reject(err); | ||||
|           cleanup(); | ||||
|         }, opts.timeout || 15000); | ||||
|         }, opts.timeout || 15 * 1000); | ||||
| 
 | ||||
|         // TODO hidden / non-hidden (via directive even)
 | ||||
|         var framesrc = '<iframe class="js-oauth3-iframe" src="' + url + '" '; | ||||
| @ -260,7 +273,7 @@ | ||||
|           // Oauth3.init({ logout: function () {} });
 | ||||
|           //return Oauth3.logout();
 | ||||
| 
 | ||||
|           var redirectUri = opts.redirectUri | ||||
|           var redirectUri = opts.redirect_uri || opts.redirectUri | ||||
|             || (window.location.protocol + '//' + (window.location.host + window.location.pathname) + 'oauth3.html') | ||||
|             ; | ||||
|           var params = { | ||||
| @ -272,6 +285,7 @@ | ||||
|           , logins: true | ||||
|           , redirect_uri: redirectUri | ||||
|           , state: prequest.state | ||||
|           , debug: opts.debug | ||||
|           }; | ||||
| 
 | ||||
|           if (prequest.url === params.redirect_uri) { | ||||
|  | ||||
| @ -213,11 +213,13 @@ | ||||
|     if (!opts.client_id) { | ||||
|       throw new Error("cannot discover without options.client_id"); | ||||
|     } | ||||
|     var clientId = core.normalizeUrl(opts.client_id || opts.client_uri); | ||||
|     providerUri = core.normalizeUrl(providerUri); | ||||
| 
 | ||||
|     var params = { | ||||
|       action: 'directives' | ||||
|     , state: core.utils.randomState() | ||||
|     , redirect_uri: opts.client_id + (opts.client_callback_path || '/.well-known/oauth3/callback.html') | ||||
|     , redirect_uri: clientId + (opts.client_callback_path || '/.well-known/oauth3/callback.html') | ||||
|     , response_type: 'rpc' | ||||
|     , _method: 'GET' | ||||
|     , _pathname: '.well-known/oauth3/directives.json' | ||||
|  | ||||
| @ -239,7 +239,10 @@ | ||||
|     }); | ||||
|   }; | ||||
|   oauth3.requests.grants = function (providerUri, opts) { | ||||
|     return oauth3.discover(providerUri, opts).then(function (directive) { | ||||
|     return oauth3.discover(providerUri, { | ||||
|       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) { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user