# Conflicts: # public/registrieren/registrieren.html - Cleaned up code - Added a specific error if e-mail that are already registered are tried to register again - fields in the registration form cant be empty - email input in registration form is now html type email - fields in login form cant be empty - email input on login form is now html type email
94 lines
3.0 KiB
HTML
94 lines
3.0 KiB
HTML
<!--
|
|
Login-Seite für den Webshop.
|
|
Die Benutzer können sich mit ihrem Benutzernamen und Passwort anmelden oder sich registreren.
|
|
-->
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Login</title>
|
|
<!-- Login-CSS-Datei -->
|
|
<link rel="stylesheet" href="./Styles/login/login.css">
|
|
<!-- Haupt-CSS-Datei -->
|
|
<link rel="stylesheet" href="./Styles/styles-main.css">
|
|
<!-- Icons -->
|
|
<link href="https://unpkg.com/boxicons@2.1.4/css/boxicons.min.css" rel="stylesheet">
|
|
<!-- Script zum Laden von Header/Footer -->
|
|
<script src="/header_footer"></script>
|
|
<title>Login</title>
|
|
</head>
|
|
<body>
|
|
<!-- Header -->
|
|
<div id="header"></div>
|
|
|
|
<main class="main-content">
|
|
<div class="login-container">
|
|
<h2 class="title">Login</h2>
|
|
|
|
<!-- Login-Formular -->
|
|
<form class="login-form">
|
|
|
|
<!-- Eingabefeld für Benutzername -->
|
|
<div class="input-group">
|
|
<input id="email" type="email" placeholder="E-Mail" required/>
|
|
<i class="icon fas fa-user"></i>
|
|
</div>
|
|
|
|
<!-- Eingabefeld für Passwort -->
|
|
<div class="input-group">
|
|
<input id="password" type="password" placeholder="Passwort" required/>
|
|
<i class="icon fas fa-lock"></i>
|
|
</div>
|
|
|
|
<!-- Login-Button -->
|
|
<button type="submit" class="login-btn" id="submit">Login</button>
|
|
|
|
<!-- Link zur Registrierungsseite -->
|
|
<p class="register-text">
|
|
Noch keinen Account? <a href="/registrieren">Registrieren</a>
|
|
</p>
|
|
</form>
|
|
</div>
|
|
</main>
|
|
|
|
<script>
|
|
document.querySelector('form').addEventListener('submit', async (event) => {
|
|
event.preventDefault()
|
|
|
|
const email = document.getElementById('email').value
|
|
const password = document.getElementById('password').value
|
|
|
|
try {
|
|
const response = await fetch('/api/user/login', {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
body: JSON.stringify({email, password})
|
|
})
|
|
if (response.ok) {
|
|
const data = await response.json();
|
|
sessionStorage.setItem("user_id", data.id)
|
|
sessionStorage.setItem("vorname", data.name)
|
|
sessionStorage.setItem("nachname", data.lower_name)
|
|
alert('Login erfolgreich!');
|
|
window.location.href = '/'; // Redirect to home page after login
|
|
} else {
|
|
const errorData = await response.json()
|
|
alert('Login fehlgeschlagen: ' + (errorData.message || 'Unbekannter Fehler'))
|
|
}
|
|
} catch (error) {
|
|
console.error('Fehler beim Login: ', error)
|
|
alert('Fehler beim Senden des Logins.')
|
|
}
|
|
})
|
|
</script>
|
|
|
|
<!-- Fußzeile -->
|
|
<div id="footer"></div>
|
|
|
|
</body>
|
|
</html>
|