diff --git a/.env b/.env index 10b1c3bd..1f0e8210 100644 --- a/.env +++ b/.env @@ -83,4 +83,5 @@ REDIS_PASSWORD=mySecretPassword MICROSOFT_CLIENT_ID="afaffea5-4e10-462a-aa64-e73baf642c57" MICROSOFT_CLIENT_SECRET="eIx8Q~N3ZnXTjTsVM3ECZio4G7t.BO6AYlD1-b2h" -MICROSOFT_REDIRECT_URI="https://lab.slm-lab.net/ms" \ No newline at end of file +MICROSOFT_REDIRECT_URI="https://lab.slm-lab.net/ms" +MICROSOFT_TENANT_ID="cb4281a9-4a3e-4ff5-9a85-8425dd04e2b2" \ No newline at end of file diff --git a/app/ms/page.tsx b/app/ms/page.tsx index a5d5e9bc..f3b27cb8 100644 --- a/app/ms/page.tsx +++ b/app/ms/page.tsx @@ -8,6 +8,7 @@ export default function MicrosoftCallbackPage() { const searchParams = useSearchParams(); const [status, setStatus] = useState('Processing authentication...'); const [error, setError] = useState(null); + const [errorDetails, setErrorDetails] = useState(null); useEffect(() => { async function handleCallback() { @@ -16,9 +17,16 @@ export default function MicrosoftCallbackPage() { const code = searchParams.get('code'); const state = searchParams.get('state'); const errorMsg = searchParams.get('error'); + const errorDescription = searchParams.get('error_description'); if (errorMsg) { setError(`Authentication error: ${errorMsg}`); + if (errorDescription) { + // URL decode the error description + const decodedErrorDescription = decodeURIComponent(errorDescription); + setErrorDetails(decodedErrorDescription); + console.error('Auth error details:', decodedErrorDescription); + } return; } @@ -42,6 +50,9 @@ export default function MicrosoftCallbackPage() { if (!response.ok) { setError(data.error || 'Failed to process authentication'); + if (data.details) { + setErrorDetails(data.details); + } return; } @@ -69,6 +80,11 @@ export default function MicrosoftCallbackPage() {

Error

{error}

+ {errorDetails && ( +
+

{errorDetails}

+
+ )}