fix: auth_proxy Cache-Control no-cache + POST redirect fallback
- Login page now sends Cache-Control: no-cache (prevent browser caching) - POST /login falls back to query string redirect param - Gitea redirect issue was caused by cached old login page without redirect field
This commit is contained in:
@ -154,6 +154,7 @@ class AuthHandler(http.server.BaseHTTPRequestHandler):
|
||||
html = html.replace('ERROR_PLACEHOLDER', '')
|
||||
self.send_response(200)
|
||||
self.send_header('Content-Type', 'text/html; charset=utf-8')
|
||||
self.send_header('Cache-Control', 'no-cache, no-store, must-revalidate')
|
||||
self.send_header('Content-Length', str(len(html.encode())))
|
||||
self.end_headers()
|
||||
self.wfile.write(html.encode())
|
||||
@ -203,8 +204,9 @@ class AuthHandler(http.server.BaseHTTPRequestHandler):
|
||||
form = urllib.parse.parse_qs(body)
|
||||
username = form.get('username', [''])[0]
|
||||
password = form.get('password', [''])[0]
|
||||
redirect = form.get('redirect', ['https://nav.xybkwd.top/'])[0]
|
||||
|
||||
qs_params = urllib.parse.parse_qs(parsed.query)
|
||||
qs_redirect = qs_params.get('redirect', ['https://nav.xybkwd.top/'])[0]
|
||||
redirect = form.get('redirect', [qs_redirect])[0]
|
||||
if username == 'fxy' and bcrypt.checkpw(password.encode(), PASSWORD_HASH):
|
||||
token = make_token(username)
|
||||
# Domain=.xybkwd.top for cross-subdomain cookie sharing
|
||||
|
||||
Reference in New Issue
Block a user