login fix v2

This commit is contained in:
Basilosaurusrex
2026-03-02 12:47:57 +01:00
parent a29086173f
commit 6a33ac6cff
2 changed files with 23 additions and 2 deletions

View File

@@ -102,6 +102,10 @@ VITE_APPWRITE_ENDPOINT=https://appwrite.webklar.com/v1
VITE_APPWRITE_PROJECT_ID=696b82bb0036d2e547ad
```
### CORS / Production (z. B. https://www.eship.pro)
Wenn die App unter einer anderen Domain läuft als im Appwrite-Projekt eingetragen, blockiert der Browser die Requests (CORS). **Lösung:** Im [Appwrite Console](https://appwrite.io/docs/console) unter dem Projekt → **Auth****Settings****Platforms** die genaue App-URL als Plattform hinzufügen (z. B. `https://www.eship.pro`). Ohne diesen Eintrag bleibt `Access-Control-Allow-Origin` auf einer anderen Domain (z. B. `https://webklar.com`) und Anfragen von eship.pro schlagen fehl.
### Extension Backend URL (Extension/background.js)
```javascript
const BACKEND_URL = "http://localhost:3000"; // Anpassen falls nötig

View File

@@ -28,6 +28,17 @@ import { fetchManagedAccounts } from "./services/accountsService";
import { useScan } from "./context/ScanContext";
import ScanningLoader from "./components/ui/ScanningLoader";
/** Prüft, ob der Fehler wie ein CORS- oder Netzwerkfehler aussieht (Request wird vom Browser blockiert). */
function isCorsOrNetworkError(e) {
const msg = (e?.message || "").toLowerCase();
return (
msg.includes("failed to fetch") ||
msg.includes("network error") ||
msg.includes("networkrequestfailed") ||
(e?.name && e.name.toLowerCase().includes("network"))
);
}
export default function App() {
const { route, navigate } = useHashRoute();
const { scanning, scanProgress } = useScan();
@@ -125,7 +136,10 @@ export default function App() {
await handoffJwtToExtension();
} catch (e) {
setStatus({ loading: false, authed: false, error: "" });
const errorMsg = isCorsOrNetworkError(e)
? "Verbindung zum Auth-Server fehlgeschlagen. Bitte in Appwrite die aktuelle App-URL (z. B. https://www.eship.pro) unter Platforms eintragen (CORS)."
: "";
setStatus({ loading: false, authed: false, error: errorMsg });
setAuthUser(null);
setHasUserDoc(false);
setUserExtensionLoad(null);
@@ -177,7 +191,10 @@ export default function App() {
await handoffJwtToExtension();
} catch (e) {
setStatus({ loading: false, authed: false, error: "Login fehlgeschlagen" });
const errorMsg = isCorsOrNetworkError(e)
? "Verbindung blockiert (CORS). In Appwrite unter Auth → Platforms die App-URL (z. B. https://www.eship.pro) hinzufügen."
: "Login fehlgeschlagen";
setStatus({ loading: false, authed: false, error: errorMsg });
setAuthUser(null);
setHasUserDoc(false);
setUserExtensionLoad(null);