Compare commits
	
		
			4 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 3b12c7854c | |||
| f410f2b171 | |||
| a952ee6197 | |||
| bb7fa017ef | 
| @ -7,7 +7,7 @@ function create(myOpts) { | ||||
|       // TODO pre-generate URL
 | ||||
| 
 | ||||
|       // deliver existing session if it exists
 | ||||
|       var scope = opts && opts.scope || []; | ||||
|       var scope = opts && (opts.scope || opts.claims || myOpts.scope || myOpts.claims || []); | ||||
|       if (myOpts.session) { | ||||
|         if (!scope.length || scope.every(function (scp) { | ||||
|           return -1 !== opts.myOpts.session.scope.indexOf(scp); | ||||
| @ -23,6 +23,7 @@ function create(myOpts) { | ||||
|         // maybe use inline instead?
 | ||||
|       , windowType: 'popup' | ||||
|       , scope: scope | ||||
|       , debug: opts.debug || myOpts.debug | ||||
|       }).then(function (session) { | ||||
|         return session; | ||||
|       }); | ||||
| @ -57,6 +58,7 @@ window.navigator.auth = { | ||||
|     var conf = {}; | ||||
|     var directives; | ||||
|     var session; | ||||
|     var scope = opts && (opts.scope || opts.claims || []); | ||||
| 
 | ||||
|     opts = opts || {}; | ||||
|     conf.client_uri = opts.client_uri || OAUTH3.clientUri(opts.location || window.location); | ||||
| @ -73,12 +75,15 @@ window.navigator.auth = { | ||||
|         var myOpts = { | ||||
|           directives: directives | ||||
|         , conf: conf | ||||
|         , debug: opts.debug | ||||
|         , scope: scope | ||||
|         }; | ||||
| 
 | ||||
|         return OAUTH3.implicitGrant(directives, { | ||||
|           client_id: conf.client_uri | ||||
|         , client_uri: conf.client_uri | ||||
|         , windowType: 'background' | ||||
|         , scope: scope | ||||
|         }).then(function (_session) { | ||||
|           session = _session; | ||||
|           myOpts.session = session; | ||||
|  | ||||
| @ -12,7 +12,8 @@ | ||||
|     } | ||||
|   , error: { | ||||
|       parse: function (providerUri, params) { | ||||
|         var err = new Error(params.error_description || params.error.message || "Unknown error with provider '" + providerUri + "'"); | ||||
|         var msg = decodeURIComponent(params.error_description || params.error.message || "Unknown error with provider '" + providerUri + "'"); | ||||
|         var err = new Error(msg); | ||||
|         err.uri = params.error_uri || params.error.uri; | ||||
|         err.code = params.error.code || params.error; | ||||
|         return err; | ||||
| @ -306,6 +307,8 @@ | ||||
| 
 | ||||
|         var params = { | ||||
|           state: opts.state || OAUTH3.utils.randomState() | ||||
|         , client_uri: clientId | ||||
|         , client_id: clientId | ||||
|         , redirect_uri: clientId + (opts.client_callback_path || '/.well-known/oauth3/callback.html#/') | ||||
|         , response_type: 'rpc' | ||||
|         , _method: 'GET' | ||||
| @ -835,6 +838,9 @@ | ||||
|       ); | ||||
| 
 | ||||
|       if (opts.debug) { | ||||
|         console.log('[DEBUG] [implicit_grant] url object:'); | ||||
|         console.log(directives.issuer); | ||||
|         console.log(authReq); | ||||
|         window.alert("DEBUG MODE: Pausing so you can look at logs and whatnot :) Fire at will!"); | ||||
|       } | ||||
| 
 | ||||
| @ -1012,6 +1018,10 @@ | ||||
|           var headers = preq.headers || {}; | ||||
|           var multipart; | ||||
| 
 | ||||
|           if (!headers.Accept && !headers.accept) { | ||||
|             headers.Accept = 'application/json'; | ||||
|           } | ||||
| 
 | ||||
|           try { | ||||
|             xhr = new XMLHttpRequest(_sys); | ||||
|           } catch(e) { | ||||
| @ -1023,7 +1033,7 @@ | ||||
|               return; | ||||
|             } | ||||
| 
 | ||||
|             var data, err; | ||||
|             var data, err, resp; | ||||
|             if (xhr.status !== 200) { | ||||
|               err = new Error('bad status code: ' + xhr.status); | ||||
|             } | ||||
| @ -1046,12 +1056,19 @@ | ||||
|               return; | ||||
|             } | ||||
| 
 | ||||
|             resolve({ | ||||
|             resp = { | ||||
|               _request: xhr | ||||
|             , headers: null // TODO
 | ||||
|             , headers: {} | ||||
|             , data: data | ||||
|             , status: xhr.status | ||||
|             }; | ||||
|             (xhr.getAllResponseHeaders()||'').trim().split(/[\n\r]+/).forEach(function (line) { | ||||
|               var parts = line.split(': '); | ||||
|               var header = parts.shift(); | ||||
|               var value = parts.join(': '); | ||||
|               resp.headers[header] = value; | ||||
|             }); | ||||
|             resolve(resp); | ||||
|           }; | ||||
|           xhr.ontimeout = function () { | ||||
|             var err = new Error('ETIMEDOUT'); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user