Registration: Create new user accounts with username, email, and password
Login: Authenticate existing users
Local Storage: User data persisted in browser storage
Form Validation: Client-side validation for required fields
Success Messages: Visual feedback for successful operations
Error Handling: User-friendly error messages
This is a client-side only authentication system using local storage. For production applications, implement server-side authentication with proper security measures.
The registration process stores user data in local storage:
document.addEventListener('DOMContentLoaded', function() { // Register form action const registerForm = document.getElementById('register-form'); const successullyRegistered = document.getElementById('successully-registered'); registerForm.addEventListener('submit', function (e) { e.preventDefault() let username = e.target.elements.username.value; let email = e.target.elements.email.value; let password = e.target.elements.password.value; // Retrieve all users from local storage let users = JSON.parse(localStorage.getItem('users')) || []; users.push({ username: username, email: email, password: password }); // Save user data into local storage localStorage.setItem('users', JSON.stringify(users)); successullyRegistered.style.display = "block"; // Clear all form inputs registerForm.reset(); });});
The login system validates credentials against stored user data:
document.addEventListener('DOMContentLoaded', function() { // Login form action const loginForm = document.getElementById('login-form'); const userNotFound = document.getElementById('user-not-found'); const successfullyLoggedIn = document.getElementById('successfully-logged-in'); loginForm.addEventListener('submit', function (e) { e.preventDefault() let username = e.target.elements.username.value; let password = e.target.elements.password.value; // Retrieve all users from local storage let users = JSON.parse(localStorage.getItem('users')) || []; users.forEach(user => { // Check if user exists with correct password if (user.username == username && user.password == password) { successfullyLoggedIn.style.display = "block"; return; } }); // If user not found in local storage userNotFound.style.display = "block"; return; });});
Passwords are stored in plain text in local storage. This is not secure for production use. Always implement proper password hashing and server-side authentication in real applications.