mirror of
https://github.com/1f349/lavender.git
synced 2024-12-22 23:54:10 +00:00
82 lines
2.1 KiB
HTML
82 lines
2.1 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<title>Test Client</title>
|
|
<script src="pop2.js"></script>
|
|
<script>
|
|
const ssoService = "http://localhost:9090";
|
|
|
|
POP2.init(ssoService + "/authorize", "f4cdb93d-fe28-427b-b037-f03f44c86a16", "openid profile age email", 500, 600);
|
|
|
|
window.addEventListener("load", function () {
|
|
doThisThing(false);
|
|
})
|
|
|
|
function updateTokenInfo(data) {
|
|
document.getElementById("someTextArea").textContent = JSON.stringify(data, null, 2);
|
|
POP2.getToken(function (x) {
|
|
document.getElementById("tokenValues").textContent = JSON.stringify(parseJwt(x), null, 2);
|
|
});
|
|
}
|
|
|
|
function parseJwt(token) {
|
|
const base64Url = token.split('.')[1];
|
|
const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
|
|
const jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function (c) {
|
|
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
|
|
}).join(''));
|
|
return JSON.parse(jsonPayload);
|
|
}
|
|
|
|
function doThisThing(popup) {
|
|
POP2.clientRequest(ssoService + "/userinfo", {}, popup).then(function (x) {
|
|
return x.json();
|
|
}).then(function (x) {
|
|
updateTokenInfo(x);
|
|
}).catch(function (x) {
|
|
console.error(x);
|
|
});
|
|
}
|
|
</script>
|
|
<style>
|
|
:root {
|
|
color-scheme: light dark;
|
|
}
|
|
|
|
#someTextArea {
|
|
width: 400px;
|
|
height: 400px;
|
|
}
|
|
|
|
#tokenValues {
|
|
width: 400px;
|
|
height: 400px;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<header>
|
|
<h1>Test Client</h1>
|
|
</header>
|
|
<main>
|
|
<div>
|
|
<button onclick="doThisThing(true);">Login</button>
|
|
</div>
|
|
<div style="display:flex; gap: 2em;">
|
|
<div>
|
|
<div>
|
|
<label for="someTextArea"></label><textarea id="someTextArea"></textarea>
|
|
</div>
|
|
<div>
|
|
<label for="tokenValues"></label><textarea id="tokenValues"></textarea>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<p>Permissions:</p>
|
|
<ul id="somePerms"></ul>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
</body>
|
|
</html>
|