by Anonymous » 20 Mar 2025, 23:43
Für einen Kontext: Ich versuche, ein grundlegendes Anmeldesystem zu erstellen. Im Moment funktioniert die Anmeldung ohne Probleme. Die Anmeldung in auch in Ordnung zu sein, so ist es ordnungsgemäß eine Verbindung mit der Datenbank - das große
Problem ist jedoch, dass das Login selbst nicht gespeichert/erkannt wird. Ich sehe kein Cookie oder etwas anderes, das darauf hinweist, dass der Server die Anmeldung erkennt. Ich arbeite in NodeJs und das Backend wird auf meinem VPS (laufende Ubuntu) gehostet. Der Versuch, einige Ratschläge von Chatgpt zu erhalten, hat leider nicht wirklich geholfen. API/Login gibt ein 200 OK mit der Antwort von {"Erfolg": True} zurück. API/auth-Check hingegen gibt eine nicht geänderte 304 zurück und gibt ein {"loggedin": false} zurück. Ich habe sichergestellt, dass ich meinen Frontend-Code eincheckte, dass jeder Abruf in Richtung API/Auth-Check und API/Login berechtigt ist: '. Es hat auch mit einer anderen Logik zu tun, die ich auf der Website mache, bei der der Benutzer angemeldet wird, um bestimmte Funktionen/Aufgaben auszuführen.
Code: Select all
app.post('/api/login', async (req, res) => {
try {
const { email, password } = req.body;
if (!email || !password) {
return res.status(400).json({ error: 'Missing email or password' });
}
const [rows] = await db.query(
'SELECT user_id, password FROM users WHERE email = ?',
[email]
);
if (!rows.length) {
return res.status(401).json({ error: 'Invalid email or password' });
}
const user = rows[0];
if (user.password !== password) {
return res.status(401).json({ error: 'Invalid email or password' });
}
req.session.userId = user.id;
return res.json({ success: true });
} catch (error) {
console.error('Login error:', error);
return res.status(500).json({ error: 'Server error' });
}
});
Und hier ist meine API/auth-Check:
Code: Select all
app.get('/api/auth-check', async (req, res) => {
if (!req.session.userId) {
return res.json({ loggedIn: false });
}
try {
const [rows] = await db.query(
'SELECT email FROM users WHERE user_id = ?',
[req.session.userId]
);
if (!rows.length) {
return res.json({ loggedIn: false });
}
return res.json({
loggedIn: true,
email: rows[0].email,
});
} catch (error) {
console.error('Auth check error:', error);
return res.status(500).json({ error: 'Server error' });
}
});
Für einen Kontext: Ich versuche, ein grundlegendes Anmeldesystem zu erstellen. Im Moment funktioniert die Anmeldung ohne Probleme. Die Anmeldung in auch in Ordnung zu sein, so ist es ordnungsgemäß eine Verbindung mit der Datenbank - das große [url=viewtopic.php?t=18916]Problem[/url] ist jedoch, dass das Login selbst nicht gespeichert/erkannt wird. Ich sehe kein Cookie oder etwas anderes, das darauf hinweist, dass der Server die Anmeldung erkennt. Ich arbeite in NodeJs und das Backend wird auf meinem VPS (laufende Ubuntu) gehostet. Der Versuch, einige Ratschläge von Chatgpt zu erhalten, hat leider nicht wirklich geholfen. API/Login gibt ein 200 OK mit der Antwort von {"Erfolg": True} zurück. API/auth-Check hingegen gibt eine nicht geänderte 304 zurück und gibt ein {"loggedin": false} zurück. Ich habe sichergestellt, dass ich meinen Frontend-Code eincheckte, dass jeder Abruf in Richtung API/Auth-Check und API/Login berechtigt ist: '. Es hat auch mit einer anderen Logik zu tun, die ich auf der Website mache, bei der der Benutzer angemeldet wird, um bestimmte Funktionen/Aufgaben auszuführen.[code]app.post('/api/login', async (req, res) => {
try {
const { email, password } = req.body;
if (!email || !password) {
return res.status(400).json({ error: 'Missing email or password' });
}
const [rows] = await db.query(
'SELECT user_id, password FROM users WHERE email = ?',
[email]
);
if (!rows.length) {
return res.status(401).json({ error: 'Invalid email or password' });
}
const user = rows[0];
if (user.password !== password) {
return res.status(401).json({ error: 'Invalid email or password' });
}
req.session.userId = user.id;
return res.json({ success: true });
} catch (error) {
console.error('Login error:', error);
return res.status(500).json({ error: 'Server error' });
}
});
[/code]
Und hier ist meine API/auth-Check:
[code]app.get('/api/auth-check', async (req, res) => {
if (!req.session.userId) {
return res.json({ loggedIn: false });
}
try {
const [rows] = await db.query(
'SELECT email FROM users WHERE user_id = ?',
[req.session.userId]
);
if (!rows.length) {
return res.json({ loggedIn: false });
}
return res.json({
loggedIn: true,
email: rows[0].email,
});
} catch (error) {
console.error('Auth check error:', error);
return res.status(500).json({ error: 'Server error' });
}
});
[/code]