ejemplo simple de una aplicación Node.js que utiliza Express.js

Aquí te proporcionaré un ejemplo simple de una aplicación Node.js que utiliza Express.js para crear un servidor web y manejar el ingreso de usuarios y contraseñas de manera básica. Para este ejemplo, utilizaremos una matriz (array) para almacenar usuarios y contraseñas en memoria, lo cual no es seguro para una aplicación en producción, pero es útil para fines de demostración.

Asegúrate de tener Node.js instalado en tu sistema antes de continuar.

1. Crea una carpeta para tu proyecto y accede a ella en tu línea de comandos:

```bash
mkdir node-login-app
cd node-login-app
```

2. Inicializa un proyecto Node.js ejecutando el siguiente comando e instalando las dependencias necesarias:

```bash
npm init -y
npm install express express-session body-parser
```

3. Crea un archivo llamado `app.js` en la carpeta de tu proyecto y agrega el siguiente código:

```javascript
const express = require('express');
const session = require('express-session');
const bodyParser = require('body-parser');

const app = express();

// Configurar middleware
app.use(bodyParser.urlencoded({ extended: true }));
app.use(session({
  secret: 'secret-key',
  resave: true,
  saveUninitialized: true
}));

// Datos de usuarios (en un entorno real, esto debería almacenarse de forma segura en una base de datos)
const users = [
  { username: 'usuario1', password: 'contrasena1' },
  { username: 'usuario2', password: 'contrasena2' }
];

// Rutas
app.get('/', (req, res) => {
  res.send('Bienvenido al sistema de inicio de sesión');
});

app.get('/login', (req, res) => {
  res.sendFile(__dirname + '/login.html');
});

app.post('/login', (req, res) => {
  const { username, password } = req.body;
  
  const user = users.find(u => u.username === username && u.password === password);

  if (user) {
    req.session.loggedin = true;
    req.session.username = username;
    res.redirect('/home');
  } else {
    res.send('Credenciales incorrectas. <a href="/login">Intenta de nuevo</a>');
  }
});

app.get('/home', (req, res) => {
  if (req.session.loggedin) {
    res.send(`¡Hola, ${req.session.username}! Has iniciado sesión. <a href="/logout">Cerrar sesión</a>`);
  } else {
    res.redirect('/login');
  }
});

app.get('/logout', (req, res) => {
  req.session.destroy(err => {
    if (err) {
      console.error(err);
    } else {
      res.redirect('/');
    }
  });
});

// Iniciar servidor
const port = 3000;
app.listen(port, () => {
  console.log(`Servidor escuchando en el puerto ${port}`);
});
```

4. Crea un archivo llamado `login.html` en la misma carpeta y agrega el siguiente código HTML para la página de inicio de sesión:

```html
<!DOCTYPE html>
<html>
<head>
  <title>Iniciar sesión</title>
</head>
<body>
  <h1>Iniciar sesión</h1>
  <form action="/login" method="POST">
    <label for="username">Usuario:</label>
    <input type="text" id="username" name="username" required><br>
    <label for="password">Contraseña:</label>
    <input type="password" id="password" name="password" required><br>
    <button type="submit">Iniciar sesión</button>
  </form>
</body>
</html>
```

5. Ejecuta la aplicación:

```bash
node app.js
```

La aplicación estará disponible en `http://localhost:3000`. Puedes acceder a la página de inicio de sesión y probar con los usuarios y contraseñas definidos en el código. Este es solo un ejemplo básico, y en una aplicación real, deberías utilizar una base de datos para almacenar y autenticar usuarios de manera segura.

No hay comentarios.:

Publicar un comentario

INDICE