diff --git a/auth/AuthProvider.tsx b/auth/AuthProvider.tsx
index 1a0700b..829aafe 100644
--- a/auth/AuthProvider.tsx
+++ b/auth/AuthProvider.tsx
@@ -1,4 +1,5 @@
-import { createContext, useContext, useEffect, useMemo, useState, PropsWithChildren } from 'react'
+import { createContext, useContext, useEffect, useMemo, useState } from 'react'
+import type { PropsWithChildren } from 'react'
import { userManager } from './oidc'
import type { User } from 'oidc-client-ts'
@@ -42,13 +43,19 @@ userManager.events.removeAccessTokenExpired(onExpired)
// Spegla token till sessionStorage så ky kan läsa den
+// i useEffect som speglar token:
useEffect(() => {
-const token = user?.access_token ?? null
-if (token) sessionStorage.setItem('access_token', token)
-else sessionStorage.removeItem('access_token')
+ const token = user?.access_token ?? null
+ if (token) {
+ sessionStorage.setItem('access_token', token)
+ console.debug('access_token set')
+ } else {
+ sessionStorage.removeItem('access_token')
+ }
}, [user])
+
const api: AuthCtx = useMemo(() => ({
user,
isAuthenticated: !!user && !user.expired,
diff --git a/auth/oidc.ts b/auth/oidc.ts
index 7270e31..133d9fc 100644
--- a/auth/oidc.ts
+++ b/auth/oidc.ts
@@ -1,6 +1,6 @@
import { UserManager, WebStorageStateStore, Log, type UserManagerSettings } from 'oidc-client-ts'
-
+console.log('AUTHORITY:', import.meta.env.VITE_OIDC_AUTHORITY)
const settings: UserManagerSettings = {
authority: import.meta.env.VITE_OIDC_AUTHORITY!,
client_id: import.meta.env.VITE_OIDC_CLIENT_ID!,
diff --git a/src/app/router.tsx b/src/app/router.tsx
index 52fd257..cc98a46 100644
--- a/src/app/router.tsx
+++ b/src/app/router.tsx
@@ -8,6 +8,7 @@ import { DueTomorrowPage } from '@/pages/DueTomorrowPage'
import AuthCallbackPage from '@/pages/AuthCallbackPage'
import SilentRenewPage from '@/pages/SilentRenewPage'
import LogoutPage from '@/pages/LogoutPage'
+import { RequireAuth } from 'auth/RequireAuth'
const router = createBrowserRouter([
{ path: '/auth/callback', element:
Completing sign-in…
-} \ No newline at end of file + const navigate = useNavigate() + const handled = useRef(false) + + useEffect(() => { + if (handled.current) return // 👈 skydd mot StrictMode dubbelkörning + handled.current = true + + ;(async () => { + try { + const res = await userManager.signinRedirectCallback() + const target = (res?.state as any)?.returnTo || '/' + // Städa bort ?code&state ur URL:en: + window.history.replaceState({}, '', target) + navigate(target, { replace: true }) + } catch (err) { + console.error('signinRedirectCallback failed:', err) + navigate('/', { replace: true }) + } + })() + }, [navigate]) + + returnCompleting sign-in…
+}