fix: CSRF token — clear jar before first fetch, preserve session across calls
This commit is contained in:
parent
710781bc47
commit
fd1fa7dbeb
1 changed files with 16 additions and 2 deletions
18
deploy.sh
18
deploy.sh
|
|
@ -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}" \
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue