This repository has been archived on 2025-11-09. You can view files and clone it, but cannot push or open issues or pull requests.
Files
trafficcue-client/src/OIDCCallback.svelte
Jannik 1215c2ffb8
All checks were successful
TrafficCue CI / check (push) Successful in 1m32s
TrafficCue CI / build (push) Successful in 9m41s
TrafficCue CI / build-android (push) Successful in 30m6s
style: run prettier
2025-09-29 19:00:25 +02:00

36 lines
1.0 KiB
Svelte

<script>
import { uploadID } from "$lib/services/lnv";
import { getOIDCUser } from "$lib/services/oidc";
import { onMount } from "svelte";
const url = new URL(location.href);
const code = url.searchParams.get("code");
const state = url.searchParams.get("state");
const storedState = localStorage.getItem("lnv-oidcstate");
const codeVerifier = localStorage.getItem("lnv-codeVerifier");
localStorage.removeItem("lnv-oidcstate");
localStorage.removeItem("lnv-codeVerifier");
async function login() {
if (!code || !state || !codeVerifier || !storedState) {
alert("Missing code, state, codeVerifier or storedState.");
return;
}
if (state !== storedState) {
alert("State mismatch. Please try again.");
return;
}
const token = await getOIDCUser(code, codeVerifier);
localStorage.setItem("lnv-id", token.id_token);
localStorage.setItem("lnv-token", token.access_token);
localStorage.setItem("lnv-refresh", token.refresh_token);
await uploadID();
}
onMount(async () => {
await login();
location.href = "/";
});
</script>