Vtech Login Portal ●

app.use(express.urlencoded( extended: true )); app.use(express.json()); app.use(session( secret: 'vtech-portal-secret-key', resave: false, saveUninitialized: false, cookie: maxAge: 1000 * 60 * 60 * 24 // 1 day ));

// Login page app.get('/login', (req, res) => res.sendFile(__dirname + '/views/login.html'); ); vtech login portal

// Handle login app.post('/api/login', (req, res) => const email, password, remember = req.body; app.use(express.urlencoded( extended: true ))

const res = await fetch('/api/login', method: 'POST', headers: 'Content-Type': 'application/json' , body: JSON.stringify( email, password, remember ) ); app.use(session( secret: 'vtech-portal-secret-key'

// Dashboard (protected) app.get('/dashboard', (req, res) => if (!req.session.userId) return res.redirect('/login'); res.send( <h1>Welcome to VTech Parent Portal, $req.session.userEmail</h1><a href="/logout">Logout</a> ); );

const data = await res.json(); if (data.success) window.location.href = data.redirect; else document.getElementById('errorMsg').innerText = data.error;

app.listen(3000, () => console.log('VTech portal running on http://localhost:3000')); <!DOCTYPE html> <html> <head> <title>VTech Parent Portal Login</title> <style> body font-family: Arial; background: #f2f2f2; display: flex; justify-content: center; align-items: center; height: 100vh; .login-box background: white; padding: 2rem; border-radius: 12px; box-shadow: 0 0 10px rgba(0,0,0,0.1); width: 300px; input width: 100%; padding: 8px; margin: 8px 0; button width: 100%; padding: 10px; background: #004a7c; color: white; border: none; border-radius: 6px; .error color: red; font-size: 14px; </style> </head> <body> <div class="login-box"> <h2>VTech Login</h2> <form id="loginForm"> <input type="email" id="email" placeholder="Email" required /> <input type="password" id="password" placeholder="Password" required /> <label><input type="checkbox" id="remember" /> Remember me</label> <button type="submit">Sign In</button> <div id="errorMsg" class="error"></div> </form> <p><a href="#">Forgot password?</a> | <a href="#">Create account</a></p> </div> <script> document.getElementById('loginForm').onsubmit = async (e) => e.preventDefault(); const email = document.getElementById('email').value; const password = document.getElementById('password').value; const remember = document.getElementById('remember').checked;