- Offizieller Beitrag
Übertrag aus dem alten b1gMail.com-Forum:
Alles anzeigenHab trotzdem ein paar Anpassungen vorgenommen, die ich hier teilen möchte:
- Klasse PHPGangsta_GoogleAuthenticator aktualisiert
- Fehlende DB-Präfixe ergänzt (alte Version muss vorher gelöscht werden), sowie "bm60_" durch {pre} ersetzt (das holt automatisch das gesetzte DB-Präfix)
- deref.php und noreferrer hinzugefügt bei Verlinkung zu Google Authenticator App
- Begriff "Google" durch "OTP" ersetzt
- Nutzt einen eigenen QR-Code-Generator (Zeile 438). Im jetzigen Plugin hat es auf Google für QR-Code Generierung verlinkt. Bei mir hat die QR-Code-Anzeige übrigens nicht funktioniert. Durch das Privacy Shield Urteil vom Juli wäre diese Verlinkung illegal bzw. müsste es in die Datenschutzerklärung aufgenommen werden.
Todo:
- Benutzerdefinierte QR-Code URL im ACP festlegen
QR-Code Generator auf eigenen Server (benötigt PHP 7.4):
Ordner qrcode im b1gMail Root anlegen. index.php mit folgenden Inhalt erzeugen:
PHP Alles anzeigen<?php include('../serverlib/init.inc.php'); // Check ob eingeloggt (aus deref.php), da keine sid uebergeben wird if($bm_prefs['cookie_lock'] == 'yes') { $ok = false; foreach($_COOKIE as $key=>$val) if(substr($key, 0, strlen('sessionSecret_')) == 'sessionSecret_') $ok = true; if(!$ok) die('Access denied'); } use chillerlan\QRCode\{QRCode, QROptions}; require_once './vendor/autoload.php'; $qrcode = filter_input(INPUT_GET, 'data', FILTER_SANITIZE_STRING); $options = new QROptions([ 'version' => 7, 'outputType' => QRCode::OUTPUT_IMAGE_PNG, 'eccLevel' => QRCode::ECC_L, 'scale' => 5, 'imageBase64' => false ]); header('Content-type: image/png'); //quick and simple: if(!empty($qrcode)) echo (new QRCode($options))->render($qrcode); ?>Anschließend im qrcode-Verzeichnis folgendes ausführen: (vorher feststellen, ob Composer bereits installiert, wenn nicht vorher herunterladen)
composer require chillerlan/php-authenticator
Wenn dieses Kommando als root ausgeführt, muss man danach chown user:gruppe mit dem entsprechenden Nutzer und Gruppe ausführen.