diff --git a/.env b/.env
index 017c359..405612f 100644
--- a/.env
+++ b/.env
@@ -1,5 +1,5 @@
-VITE_API_URL="https://gateway.poweron-center.net"
-
+#VITE_API_URL="https://gateway.poweron-center.net"
+VITE_API_URL="http://127.0.0.1:8000"
VITE_MICROSOFT_CLIENT_ID="24cd6c8a-b592-4905-a5ba-d5fa9f911154"
VITE_MICROSOFT_TENANT_ID="6a51aaeb-2467-4186-9504-2a05aedc591f"
VITE_ENTRA_CLIENT_SECRET="2iw8Q~jwqG1iacxHopBt5pstu6R45UC1gIQabcbD"
diff --git a/src/api.ts b/src/api.ts
index 0ef834a..7db88ac 100644
--- a/src/api.ts
+++ b/src/api.ts
@@ -2,7 +2,8 @@
import axios from 'axios';
const api = axios.create({
- baseURL: 'https://gateway.poweron-center.net',
+ /*baseURL: 'https://gateway.poweron-center.net',*/
+ baseURL: 'http://localhost:8000',
withCredentials: true
});
diff --git a/src/auth/auth-provider.tsx b/src/auth/auth-provider.tsx
index fdd76aa..d8a99d7 100644
--- a/src/auth/auth-provider.tsx
+++ b/src/auth/auth-provider.tsx
@@ -65,39 +65,6 @@ import {
initializeMsal();
}, []);
- // Separate login effect with protection against loops
- useEffect(() => {
- if (!isInitialized || !msalInstance || loginAttempted) return;
-
- const accounts = msalInstance.getAllAccounts();
- if (accounts.length === 0) {
- // Set a flag to avoid repeated login attempts
- setLoginAttempted(true);
-
- // Check local/session storage for redirect in progress
- const inProgress = sessionStorage.getItem("msal.interaction.status");
- if (inProgress === "login" || inProgress === "handleRedirect") {
- console.log("Login already in progress according to session storage");
- return;
- }
-
- console.log("No accounts found, triggering login...");
-
- // Use a small timeout to ensure everything is ready
- const loginTimer = setTimeout(() => {
- msalInstance.loginRedirect({
- scopes: ["openid", "profile", "email"]
- }).catch(error => {
- console.error("Login redirect failed:", error);
- // Reset the flag if login fails
- setLoginAttempted(false);
- });
- }, 500);
-
- return () => clearTimeout(loginTimer);
- }
- }, [isInitialized, msalInstance, loginAttempted]);
-
if (!isInitialized || !msalInstance) {
return
Loading authentication...
;
}
diff --git a/src/hooks/useMsalAuth.ts b/src/hooks/useMsalAuth.ts
index 89ba817..69dfc5e 100644
--- a/src/hooks/useMsalAuth.ts
+++ b/src/hooks/useMsalAuth.ts
@@ -30,9 +30,11 @@ export function useMsalAuth(): UseMsalAuthReturn {
try {
let msalToken;
+ console.log("Starting MSAL auth process");
// If we have an account, try to get the token silently
if (accounts.length > 0) {
+ console.log("Account found, trying silent token acquisition");
const silentRequest = {
scopes: ['user.read'],
account: accounts[0]
@@ -41,28 +43,36 @@ export function useMsalAuth(): UseMsalAuthReturn {
try {
const response = await instance.acquireTokenSilent(silentRequest);
msalToken = response.accessToken;
+ console.log("Silent token acquisition successful");
} catch (e) {
// If silent token acquisition fails, fall back to popup
+ console.log("Silent token acquisition failed, trying popup", e);
const response = await instance.acquireTokenPopup(silentRequest);
msalToken = response.accessToken;
+ console.log("Popup token acquisition successful");
}
} else {
// No account, do popup login
+ console.log("No account found, doing popup login");
const response = await instance.loginPopup({
scopes: ['user.read']
});
if (response.account) {
+ console.log("Login successful, acquiring token");
const tokenResponse = await instance.acquireTokenSilent({
scopes: ['user.read'],
account: response.account
});
msalToken = tokenResponse.accessToken;
+ console.log("Token acquisition successful");
} else {
throw new Error('Failed to get account after login');
}
}
+ console.log("MSAL token acquired, exchanging with backend");
+
// Exchange MSAL token for backend token
const response = await api.post('/api/msft/token', null, {
headers: {
@@ -70,6 +80,8 @@ export function useMsalAuth(): UseMsalAuthReturn {
}
});
+ console.log("Backend token exchange successful", response.data);
+
// Store the backend token
if (response.data.accessToken) {
localStorage.setItem('auth_data', JSON.stringify(response.data));
@@ -80,10 +92,13 @@ export function useMsalAuth(): UseMsalAuthReturn {
let errorMessage = 'MSAL Login fehlgeschlagen';
if (error.response) {
+ console.error("Backend response error:", error.response.status, error.response.data);
errorMessage = error.response.data?.detail || error.response.data?.message || errorMessage;
} else if (error.request) {
+ console.error("No response received:", error.request);
errorMessage = 'Keine Antwort vom Server erhalten';
} else {
+ console.error("Error during MSAL auth:", error.message);
errorMessage = error.message || errorMessage;
}
diff --git a/src/pages/Login.tsx b/src/pages/Login.tsx
index 9aec3e4..fb7694b 100644
--- a/src/pages/Login.tsx
+++ b/src/pages/Login.tsx
@@ -20,17 +20,24 @@ function Login() {
// Get the page the user was trying to visit
const from = location.state?.from?.pathname || "/";
+ // Debug information about accounts
useEffect(() => {
- if (accounts.length > 0 && inProgress === "none") {
- handleMsalLogin();
+ if (accounts.length > 0) {
+ console.log("MSAL accounts found:", accounts.map(acc => ({
+ username: acc.username,
+ name: acc.name,
+ idTokenClaims: acc.idTokenClaims
+ })));
} else {
- console.log("User not logged in or auth in progress:", inProgress);
+ console.log("No MSAL accounts found");
}
- }, [accounts, inProgress]);
+ }, [accounts]);
const handleMsalLogin = async () => {
try {
- await loginWithMsal();
+ console.log("Attempting MSAL login...");
+ const response = await loginWithMsal();
+ console.log("MSAL login successful:", response);
navigate(from, { replace: true });
} catch (error) {
console.error("MSAL login failed:", error);
@@ -87,7 +94,7 @@ function Login() {