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