fix: CSRF token — clear jar before first fetch, preserve session across calls

This commit is contained in:
Claus Lohmar 2026-07-07 16:08:20 +01:00
parent 710781bc47
commit fd1fa7dbeb

View file

@ -265,12 +265,26 @@ EOF
sleep 1 sleep 1
COOKIE_JAR="/tmp/zoraxy_cookies.txt" COOKIE_JAR="/tmp/zoraxy_cookies.txt"
rm -f "$COOKIE_JAR"
# Helper: fetch CSRF token from Zoraxy login page
# Uses $COOKIE_JAR — appends cookies, preserves existing session
fetch_csrf() { fetch_csrf() {
curl -s -c "$COOKIE_JAR" -b "$COOKIE_JAR" http://127.0.0.1:8000/login.html | grep 'zoraxy.csrf.Token' | sed 's/.*content="//;s/".*//' local page
page=$(curl -s -c "$COOKIE_JAR" -b "$COOKIE_JAR" http://127.0.0.1:8000/login.html 2>&1)
local token
token=$(echo "$page" | grep 'zoraxy.csrf.Token' | sed 's/.*content="//;s/".*//')
echo "$token"
} }
# First call — fresh cookie jar
rm -f "$COOKIE_JAR"
CSRF=$(fetch_csrf) CSRF=$(fetch_csrf)
if [ -z "$CSRF" ]; then
echo " [WARN] No CSRF token found, sleeping 3s and retrying..."
sleep 3
CSRF=$(fetch_csrf)
fi
ADMIN_CREATE=$(curl -s -c "$COOKIE_JAR" -b "$COOKIE_JAR" -X POST "http://127.0.0.1:8000/api/auth/register" \ ADMIN_CREATE=$(curl -s -c "$COOKIE_JAR" -b "$COOKIE_JAR" -X POST "http://127.0.0.1:8000/api/auth/register" \
-H "X-CSRF-Token: ${CSRF}" \ -H "X-CSRF-Token: ${CSRF}" \
-d "username=${ADMIN_USERNAME:-master}" \ -d "username=${ADMIN_USERNAME:-master}" \