E-Mail-Verification

Mit Version 3.7.0 kannst Du die E-Mail-Verifizierung aktivieren, um Spam zu verhindern und LLMs vom Erstellen von Kommentaren auszuschließen.

Nur mit SQLite

Bitte beachte, dass diese Funktion nur mit SQLite als Speichermethode funktioniert – sie funktioniert nicht mit Markdown.

E-Mails

Stelle sicher, dass Kirby für den E-Mail-Versand konfiguriert ist. Lies hier mehr darüber: https://getkirby.com/docs/guide/emails#transport-configuration

So funktioniert es:

  1. Deine Leserin schreibt einen Kommentar
  2. Sie erhält eine E-Mail mit einem Verifizierungslink
  3. Der Link läuft nach 48 Stunden ab (sofern nicht anders konfiguriert)
  4. Neue Kommentare erhalten den Status PENDING
  5. Der Link öffnet eine virtuelle Kirby-Seite
  6. Wenn sie auf den Link klickt
    1. Ändert sich der Kommentarstatus zu VERIFIED
    2. Wird der Verifizierungslink ungültig
  7. Wenn sie nicht rechtzeitig auf den Link klickt
    1. Wird dieser ungültig
    2. Wird der Kommentar als Spam markiert oder gelöscht

Grundlegende Einrichtung

Um diese Funktion zu aktivieren, musst du mindestens zwei Optionen in deiner config.php konfigurieren:

'mauricerenck' => [
    'komments' => [
        'spam' => [
            'verification' => [
                'enabled' => true,
                'secret' => 'my-extremly-secure-secret'
            ]
        ]
    ]
]

Dies aktiviert die Funktion. Das Secret wird verwendet, um den Verifizierungstoken für jeden Kommentar zu erstellen.

Mit dieser Einrichtung ist der Token 48 Stunden lang gültig. Nach dieser Zeit wird er gelöscht und der Kommentar als Spam markiert.

Du kannst ändern, wie lange der Token gültig sein soll, indem du deinen Wert (in Stunden) festlegst:

'mauricerenck' => [
    'komments' => [
        'spam' => [
            'verification' => [
                'ttl' => 8,
            ]
        ]
    ]
]

Du kannst auch entscheiden, was passiert, wenn der Benutzer auf den Verifizierungslink klickt:

'mauricerenck' => [
    'komments' => [
        'spam' => [
            'verification' => [
                'autoPublish' => true,
            ]
        ]
    ]
]

Wenn du autoPublish auf true setzt, wird der Kommentar automatisch veröffentlicht, sobald der Benutzer ihn verifiziert. Andernfalls ändert sich der Kommentarstatus von "PENDING" zu "VERIFIED".

Umgekehrt kannst du entscheiden, was passiert, wenn der Benutzer nicht auf den Link klickt. Standardmäßig wird der Kommentar als Spam markiert, sobald die Verifizierung abläuft. Wenn du den deletionMode festlegst, wird er stattdessen gelöscht:

'mauricerenck' => [
    'komments' => [
        'spam' => [
            'verification' => [
                'deletionMode' => 'delete',
            ]
        ]
    ]
]

Templates anpassen

Sowohl die E-Mail als auch das Template der virtuellen Verifizierungsseite sind sehr minimal gehalten, und du möchtest sie wahrscheinlich anpassen.

Du kannst dies tun, indem du eigene Templates erstellst.

E-Mail-Template

Erstelle eine neue Datei mit dem Namen mailverification.php unter site/templates/emails

Du hast Zugriff auf folgende Variablen:

<?php 

$username // The name the user entered
$expireHours // When the link will expire
$verificationUrl // the url the user has to visit

Template für virtuelle Seite

Erstelle eine neue Datei mit dem Namen comment-verified.php unter site/templates. Stelle sicher, dass du den notwendigen Code hinzufügst, wenn du Details des Kommentars anzeigen möchtest. Du findest das Original-Template hier: https://github.com/mauricerenck/komments/blob/main/templates/pages/comment-verified.php

Unverifizerte Kommentare im Panel anzeigen

Standardmäßig werden unverifiziert Kommentare im Panel und den Notifications ausgeblendet. Erst wenn sie verifiziert wurden, tauchen sie auf. Um dieses Verhalten zu ändern, kannst du es mit folgender Option deaktivieren:

'mauricerenck' => [
    'komments' => [
        'spam' => [
            'verification' => [
                'filterUnverified' => false,
            ]
        ]
    ]
]