Hallo, ich versuche momentan ein Login Script zu bauen und verstehe etwas nicht: Wenn ich mich erfolgreich einlogge, wird Serverseitig die SESSION "loggedIn" erstellt und auf true gesetzt.
Wenn ich dann allerdings eine fetch Request an eine Php Datei schicke, welche mir einfach den Wert von "loggedIn" anzeigen soll, gibt es diese Variable nicht mehr. Dann ist die ganze SESSION nicht mehr existent.
Das php Script, welches true oder false zurückgibt:
<?php
session_start();
if(isset($_SESSION['loggedIn'])) {
echo json_encode(['isLoggedIn' => true]);
}else {
echo json_encode(['isLoggedIn' => false]);
}
?>
Da kommt andauernd false bei raus.
Ich glaub zwar nicht, dass da benötigt wird, aber hier die fetch Request:
fetch('http://localhost:80/backend/isLoggedIn.php')
.then(response => response.json())
.then(data => setLoggedIn(data.isLoggedIn));
Ich arbeite mit 2 unterschiedlichen Ports und habe dafür CORS abgestellt.
Das komische ist, dass alles einwandfrei funktioniert, wenn ich eine andere Website verwende, welche auch auf Port 80 läuft. Dann bleibt die Session bestehen und dann gibt das php Script auch true zurück.
Zur kurzen Erklärung, damit keiner verwirrt ist: Ich entwickle momentan ein Projekt neu. Das Originale liegt nach wie vor auf Port 80 und funktioniert einwandfrei. Das neue Projekt wird mit node entwickelt und liegt daher auf Port 3000. Für das Backend steuer ich aber die genau gleichen Scripte an.