#!/bin/bash # fe_comment Login-Testkette: GET (Nonce+Token) -> Login-POST -> state # Aufruf: bash migrations/fec_login_test.sh (fragt das Passwort unsichtbar ab) set -e cd /usr/www/users/vitecevo/live BASE=https://dev.vitec.com read -rsp "Passwort fuer joe: " PASS; echo rm -f /tmp/fec.jar curl -sS -c /tmp/fec.jar -o /tmp/fec_form.json "$BASE/_json/fe-user-profile" TOKEN=$(php -r ' $j = json_decode(file_get_contents("/tmp/fec_form.json"), true); $f = ""; $w = function ($n) use (&$w, &$f) { if (is_array($n)) { // Variante 1: strukturiertes headless-Formular {name: "__RequestToken", value: "..."} if (($n["name"] ?? "") === "__RequestToken" && isset($n["value"])) { $f = (string)$n["value"]; } foreach ($n as $c) { $w($c); } } elseif (is_string($n) && $f === "") { // Variante 2: felogin rendert klassisches HTML als String im JSON if (preg_match("/name=\"__RequestToken\" value=\"([^\"]+)\"/", $n, $m)) { $f = $m[1]; } } }; $w($j); echo $f; ') echo "Nonce-Cookies im Jar: $(grep -c typo3nonce /tmp/fec.jar || true)" echo "Token-Laenge: ${#TOKEN}" if [ -z "$TOKEN" ]; then echo "KEIN __RequestToken im Seiten-JSON gefunden." echo "Vorkommen von 'RequestToken' im JSON (zur Diagnose):" grep -o 'RequestToken[^"]*"[^"]*"' /tmp/fec_form.json | head -n 3 || echo "(keine)" exit 1 fi curl -sS -b /tmp/fec.jar -c /tmp/fec.jar -o /tmp/fec_login.json \ --data-urlencode "user=joe" \ --data-urlencode "pass=$PASS" \ --data-urlencode "logintype=login" \ --data-urlencode "pid=520" \ --data-urlencode "__RequestToken=$TOKEN" \ "$BASE/_json/fe-user-profile" echo "Session-Cookies (fe_typo_user): $(grep -c fe_typo_user /tmp/fec.jar || true)" echo '--- state ---' curl -sS -b /tmp/fec.jar "$BASE/api/fe-comment/state"; echo