Hallo zusammen,
ich migriere gerade mal wieder eine bestehende Seite mit internem Bereich zu Contao. Dabei muss ich mehrere hundert Mitglieder aus einer externen Datenbank importieren – eigentlich kein Problem. Aus Sicherheits- und Datenschutzgründen möchte ich diesen Mitgliedern aber nicht einfach ein neues Passwort per Mail zuschicken. Lieber würde das Contao-Modul "Passwort vergessen" dafür einsetzen – aber eben automatisiert.
Der Einfachheit halber wollte ich mir ein kleines bash-Script schreiben, welches die "Passwort vergessen"-Seite aufruft und damit automatisch Mails an alle Mitglieder verschickt. Der Aufruf sieht etwa so aus:
Code:
curl -b "csrf_contao_csrf_token=12345678;PHPSESSID=abcdefg" -F "FORM_SUBMIT=tl_lost_password_10&REQUEST_TOKEN=12345678&email=info%40example.com" https://www.meine-webseite.tld/passwort-vergessen.html
-b übergibt die Cookies, -F simuliert einen Form-Request. Die PHPSESSID habe ich einfach aus einem echten Request per Browser kopiert (Cookie), den csrf_contao_csrf_token = REQUEST_TOKEN auch. Ob die PHPSESSID überhaupt übergeben werden muss, weiß ich nicht. Für den csrf_contao_csrf_token könnte ich wahrscheinlich XYZ einsetzen, solange das mit dem REQUEST_TOKEN übereinstimmt.
Leider gibt diese curl-Abfrage nur die ganz normale Seite "https://www.meine-webseite.tld/passwort-vergessen.html" aus – ohne wirklich die Methode "sendPasswordLink()" in vendor/contao/core-bundle/src/Resources/contao/modules/ModulePassword.php aufzurufen. Auch im System-Log taucht kein Eintrag auf. Scheint ein Cross-Origin-Problem zu sein – oder? Hat jemand Tipps?
Danke & Grüße aus Freiburg
Arndt
Lesezeichen