[Plattformname] – Für eine erfüllende, inklusive Zukunft

Loggen Sie sich ein oder registrieren Sie sich, um unsere Plattform vollständig zu nutzen.

Einloggen – Für bereits registrierte Nutzer

Falls Sie bereits registriert sind, loggen Sie sich hier ein, um Beiträge hochzuladen, zu kommentieren oder im Feed aktiv zu sein.

Geben Sie Ihre registrierte E-Mail-Adresse ein.

Mindestens 8 Zeichen, inklusive Buchstaben, Zahlen und Sonderzeichen.

Registrieren – Werden Sie Teil unserer Gemeinschaft

Melden Sie sich an, um Ihre Kreativität zu teilen, zu kommentieren und im Feed aktiv zu sein. E-Mail, Alias und Passwort sind erforderlich, Vorname, Nachname, Land, Region und Ort sind optional. Nach der Registrierung ist eine Bestätigung per E-Mail erforderlich.

Gültiges E-Mail-Format (z. B. name@domain.com, min. 3 Zeichen).

Bitte geben Sie eine gültige E-Mail-Adresse ein (min. 3 Zeichen, gültiges Format).

Mindestens 3 Zeichen, einzigartig und frei wählbar.

Dieser Alias existiert bereits oder ist zu kurz (min. 3 Zeichen).

Mindestens 8 Zeichen, inklusive Buchstaben, Zahlen und Sonderzeichen (z. B. @, $, !).

Bitte geben Sie ein sicheres Passwort ein (min. 8 Zeichen, Buchstaben, Zahlen, Sonderzeichen).

Optional, nur Buchstaben, mindestens 3 Zeichen.

Bitte geben Sie einen gültigen Vornamen ein (nur Buchstaben, min. 3 Zeichen).

Optional, nur Buchstaben, mindestens 3 Zeichen.

Bitte geben Sie einen gültigen Nachnamen ein (nur Buchstaben, min. 3 Zeichen).

Optional, mindestens 3 Zeichen.

Optional, mindestens 3 Zeichen.

Optional, mindestens 3 Zeichen.

© 2025 [Plattformname]. Alle Rechte vorbehalten.

// Backend mit Node.js, Express und MongoDB // Erforderliche Module importieren const express = require('express'); const mongoose = require('mongoose'); const bcrypt = require('bcryptjs'); const jwt = require('jsonwebtoken'); const nodemailer = require('nodemailer'); const cors = require('cors'); const dotenv = require('dotenv'); dotenv.config(); const app = express(); app.use(express.json()); app.use(cors()); // MongoDB Verbindung mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true, }).then(() => console.log('MongoDB verbunden')).catch(err => console.log(err)); // Nutzermodell const UserSchema = new mongoose.Schema({ email: String, password: String, confirmed: { type: Boolean, default: false } }); const User = mongoose.model('User', UserSchema); // Registrierung mit E-Mail-Bestätigung app.post('/register', async (req, res) => { const { email, password } = req.body; const hashedPassword = await bcrypt.hash(password, 10); const user = new User({ email, password: hashedPassword }); await user.save(); // Bestätigungslink erstellen const token = jwt.sign({ email }, process.env.JWT_SECRET, { expiresIn: '1d' }); const confirmLink = `http://localhost:3000/confirm/${token}`; // E-Mail versenden const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: process.env.EMAIL_USER, pass: process.env.EMAIL_PASS } }); await transporter.sendMail({ from: process.env.EMAIL_USER, to: email, subject: 'Bestätigen Sie Ihre Registrierung', text: `Bitte bestätigen Sie Ihre Registrierung: ${confirmLink}` }); res.json({ message: 'Registrierung erfolgreich! Bitte prüfen Sie Ihre E-Mail.' }); }); // E-Mail-Bestätigung app.get('/confirm/:token', async (req, res) => { try { const { email } = jwt.verify(req.params.token, process.env.JWT_SECRET); await User.updateOne({ email }, { confirmed: true }); res.send('E-Mail bestätigt. Sie können sich nun einloggen.'); } catch (error) { res.status(400).send('Ungültiger Token'); } }); // Login app.post('/login', async (req, res) => { const { email, password } = req.body; const user = await User.findOne({ email }); if (!user || !user.confirmed || !(await bcrypt.compare(password, user.password))) { return res.status(400).json({ message: 'Ungültige Anmeldedaten oder Konto nicht bestätigt' }); } const token = jwt.sign({ userId: user._id }, process.env.JWT_SECRET, { expiresIn: '1h' }); res.json({ token }); }); // Server starten app.listen(5000, () => console.log('Server läuft auf Port 5000'));