69 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html>
 | |
| <html>
 | |
|   <head>
 | |
|     <style>
 | |
|       body {
 | |
|         background-color: #ffcccc;
 | |
|       }
 | |
|     </style>
 | |
|   </head>
 | |
|   <body>
 | |
|   OAuth3 RPC
 | |
| 
 | |
|   <script src="/assets/com.jquery/jquery-3.1.1.js"></script>
 | |
|   <script src="/assets/org.oauth3/oauth3.core.js"></script>
 | |
|   <script>
 | |
|     'use strict';
 | |
| 
 | |
|     // TODO what about search within hash?
 | |
|     var prefix = "(" + window.location.hostname + ") [.well-known/oauth3/]";
 | |
|     var params = OAUTH3_CORE.queryparse(window.location.hash || window.location.search);
 | |
|     if (params.debug) {
 | |
|       console.warn(prefix, "DEBUG MODE ENABLED. Automatic redirects disabled.");
 | |
|     }
 | |
| 
 | |
|     console.log(prefix, 'hash||search:');
 | |
|     console.log(window.location.hash || window.location.search);
 | |
| 
 | |
|     console.log(prefix, 'params:');
 | |
|     console.log(params);
 | |
| 
 | |
|     $.ajax({ url: 'directives.json' }).then(function (resp) {
 | |
|       var b64 = btoa(JSON.stringify(resp, null, 0))
 | |
|       var urlsafe64 = OAUTH3_CORE.utils.base64ToUrlSafeBase64(b64);
 | |
|       var redirect;
 | |
| 
 | |
|       console.log(prefix, 'directives');
 | |
|       console.log(resp);
 | |
| 
 | |
|       console.log(prefix, 'base64');
 | |
|       console.log(urlsafe64);
 | |
| 
 | |
|       // TODO try postMessage back to redirect_uri domain right here
 | |
|       // window.postMessage();
 | |
| 
 | |
|       // TODO make sure it's https NOT http
 | |
|       // NOTE: this can be only up to 2,083 characters
 | |
|       console.log(prefix, 'params.redirect_uri:', params.redirect_uri);
 | |
|       redirect = params.redirect_uri + '?' + OAUTH3_CORE.querystringify({
 | |
|         state: params.state
 | |
|       , directives: urlsafe64
 | |
|       , debug: params.debug || undefined
 | |
|       })
 | |
| 
 | |
|       console.log(prefix, 'redirect');
 | |
|       console.log(redirect);
 | |
|       if (!params.debug) {
 | |
|         window.location = redirect;
 | |
|       } else {
 | |
|         // yes, we're violating the security lint with purpose
 | |
|         document.body.innerHTML += window.location.host + window.location.pathname
 | |
|           + '<br/><br/>You\'ve passed the \'debug\' parameter so we\'re pausing'
 | |
|           + ' to let you look at logs or whatever it is that you intended to do.'
 | |
|           + '<br/><br/>Continue with redirect: <a href="' + redirect + '">' + redirect + '</' + 'a>';
 | |
|       }
 | |
|     });
 | |
|   </script>
 | |
|   </body>
 | |
| </html>
 |