You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.7 KiB
46 lines
1.7 KiB
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<title></title>
|
|
</head>
|
|
|
|
<body>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/oidc-client/1.11.5/oidc-client.min.js"
|
|
integrity="sha512-pGtU1n/6GJ8fu6bjYVGIOT9Dphaw5IWPwVlqkpvVgqBxFkvdNbytUh0H8AP15NYF777P4D3XEeA/uDWFCpSQ1g=="
|
|
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
|
<script>
|
|
new Oidc.UserManager().signinSilentCallback()
|
|
.then(() => {
|
|
const refreshToken = new URLSearchParams(document.location.search).get('refresh_token');
|
|
|
|
if (refreshToken && /iPad|iPhone|iPod/.test(navigator.userAgent)) {
|
|
const getDomain = () => {
|
|
if (! '%NODE_ENV%' || '%NODE_ENV%' === 'development') {
|
|
return 'localhost';
|
|
} else {
|
|
return '.insports.tv';
|
|
}
|
|
};
|
|
const parseJwt = (value) => {
|
|
const base64Url = value.split('.')[1];
|
|
const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
|
|
const jsonPayload = decodeURIComponent(window.atob(base64).split('').map((c) => `%${(`00${c.charCodeAt(0).toString(16)}`).slice(-2)}`).join(''));
|
|
|
|
return JSON.parse(jsonPayload);
|
|
};
|
|
const saveRefreshToken = (value) => {
|
|
const ref = parseJwt(value);
|
|
const expires = `expires=${new Date((ref.exp * 1000)).toUTCString()}`;
|
|
document.cookie = `refresh_token=${value};${expires};path=/;domain=${getDomain()};secure;SameSite=None`;
|
|
};
|
|
saveRefreshToken(refreshToken);
|
|
}
|
|
})
|
|
.catch((err) => {
|
|
console.error('OIDC: silent refresh callback error', err);
|
|
});
|
|
</script>
|
|
</body>
|
|
|
|
</html> |