get both the CSRF token and session ID cookies, as they are both needed for login now

This commit is contained in:
Christophe B Billheimer 2021-09-10 08:02:13 -04:00
parent 1312ef7e50
commit 92f13eb8bf

View File

@ -135,7 +135,7 @@ dns_1984hosting_rm() {
_1984hosting_login() { _1984hosting_login() {
if ! _check_credentials; then return 1; fi if ! _check_credentials; then return 1; fi
if _check_cookie; then if _check_cookies; then
_debug "Already logged in" _debug "Already logged in"
return 0 return 0
fi fi
@ -150,9 +150,12 @@ _1984hosting_login() {
_debug2 response "$response" _debug2 response "$response"
if _contains "$response" '"loggedin": true'; then if _contains "$response" '"loggedin": true'; then
One984HOSTING_COOKIE="$(grep -io 'sessionid=[^;]*;' "$HTTP_HEADER" | tr -d ';')" One984HOSTING_SESSIONID_COOKIE="$(grep -io 'sessionid=[^;]*;' "$HTTP_HEADER" | tr -d ';')"
export One984HOSTING_COOKIE One984HOSTING_CSRFTOKEN_COOKIE="$(grep -io 'csrftoken=[^;]*;' "$HTTP_HEADER" | tr -d ';')"
_saveaccountconf_mutable One984HOSTING_COOKIE "$One984HOSTING_COOKIE" export One984HOSTING_SESSIONID_COOKIE
export One984HOSTING_CSRFTOKEN_COOKIE
_saveaccountconf_mutable One984HOSTING_SESSIONID_COOKIE "$One984HOSTING_SESSIONID_COOKIE"
_saveaccountconf_mutable One984HOSTING_CSRFTOKEN_COOKIE "$One984HOSTING_CSRFTOKEN_COOKIE"
return 0 return 0
fi fi
return 1 return 1
@ -169,21 +172,24 @@ _check_credentials() {
return 0 return 0
} }
_check_cookie() { _check_cookies() {
One984HOSTING_COOKIE="${One984HOSTING_COOKIE:-$(_readaccountconf_mutable One984HOSTING_COOKIE)}" One984HOSTING_SESSIONID_COOKIE="${One984HOSTING_SESSIONID_COOKIE:-$(_readaccountconf_mutable One984HOSTING_SESSIONID_COOKIE)}"
if [ -z "$One984HOSTING_COOKIE" ]; then One984HOSTING_CSRFTOKEN_COOKIE="${One984HOSTING_CSRFTOKEN_COOKIE:-$(_readaccountconf_mutable One984HOSTING_CSRFTOKEN_COOKIE)}"
_debug "No cached cookie found" if [ -z "$One984HOSTING_SESSIONID_COOKIE" ] || [ -z "$One984HOSTING_CSRFTOKEN_COOKIE" ]; then
_debug "No cached cookie(s) found"
return 1 return 1
fi fi
_authget "https://management.1984hosting.com/accounts/loginstatus/" _authget "https://management.1984hosting.com/accounts/loginstatus/"
if _contains "$response" '"ok": true'; then if _contains "$response" '"ok": true'; then
_debug "Cached cookie still valid" _debug "Cached cookies still valid"
return 0 return 0
fi fi
_debug "Cached cookie no longer valid" _debug "Cached cookies no longer valid"
One984HOSTING_COOKIE="" One984HOSTING_SESSIONID_COOKIE=""
_saveaccountconf_mutable One984HOSTING_COOKIE "$One984HOSTING_COOKIE" One984HOSTING_CSRFTOKEN_COOKIE=""
_saveaccountconf_mutable One984HOSTING_SESSIONID_COOKIE "$One984HOSTING_SESSIONID_COOKIE"
_saveaccountconf_mutable One984HOSTING_CSRFTOKEN_COOKIE "$One984HOSTING_CSRFTOKEN_COOKIE"
return 1 return 1
} }
@ -217,7 +223,8 @@ _get_root() {
# add extra headers to request # add extra headers to request
_authget() { _authget() {
export _H1="Cookie: $One984HOSTING_COOKIE" export _H1="Cookie: $One984HOSTING_SESSIONID_COOKIE"
export _H2="Cookie: $One984HOSTING_CSRFTOKEN_COOKIE"
_response=$(_get "$1" | _normalizeJson) _response=$(_get "$1" | _normalizeJson)
_debug2 _response "$_response" _debug2 _response "$_response"
} }
@ -225,12 +232,14 @@ _authget() {
# truncate huge HTML response # truncate huge HTML response
# echo: Argument list too long # echo: Argument list too long
_htmlget() { _htmlget() {
export _H1="Cookie: $One984HOSTING_COOKIE" export _H1="Cookie: $One984HOSTING_SESSIONID_COOKIE"
export _H2="Cookie: $One984HOSTING_CSRFTOKEN_COOKIE"
_response=$(_get "$1" | grep "$2" | _head_n 1) _response=$(_get "$1" | grep "$2" | _head_n 1)
} }
# add extra headers to request # add extra headers to request
_authpost() { _authpost() {
export _H1="Cookie: $One984HOSTING_COOKIE" export _H1="Cookie: $One984HOSTING_SESSIONID_COOKIE"
export _H2="Cookie: $One984HOSTING_CSRFTOKEN_COOKIE"
_response=$(_post "$1" "$2") _response=$(_post "$1" "$2")
} }