From b38f03c0e7218762d90fa5092696b127f24f36db Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 25 Jan 2026 07:07:26 +0000
Subject: [PATCH] =Some logical flaws in Queue.php, Queue.js, ContentExecutor.php, UploadExecutor.php - particularly with timeline ordering, frontend queue updates, etc

---
 inc/rest/routes/LoginRoutes.php |   33 ++++++++++-----------------------
 1 files changed, 10 insertions(+), 23 deletions(-)

diff --git a/inc/rest/routes/LoginRoutes.php b/inc/rest/routes/LoginRoutes.php
index 234f231..e775960 100644
--- a/inc/rest/routes/LoginRoutes.php
+++ b/inc/rest/routes/LoginRoutes.php
@@ -31,23 +31,7 @@
 		register_rest_route($this->namespace, '/auth/login', [
 			'methods' => 'POST',
 			'callback' => [$this, 'handleLogin'],
-			'permission_callback' => [$this, 'checkRateLimit'],
-			'args' => [
-				'user_email' => [
-					'required' => true,
-					'type' => 'string',
-					'sanitize_callback' => 'sanitize_email'
-				],
-				'user_password' => [
-					'required' => true,
-					'type' => 'string'
-				],
-				'remember_me' => [
-					'required' => false,
-					'type' => 'boolean',
-					'default' => false
-				]
-			]
+			'permission_callback' => [$this, 'checkRateLimit']
 		]);
 
 		// Logout endpoint
@@ -125,7 +109,7 @@
 
 	public function handleLogin(WP_REST_Request $request): WP_REST_Response
 	{
-		$data = $request->get_json_params();
+		$data = $request->get_params();
 		// Verify Turnstile
 		if (!$this->verifyTurnstile($data['cf-turnstile-response'] ?? '')) {
 			return $this->error('Security verification failed', 'turnstile_failed', 403);
@@ -154,7 +138,7 @@
 			'user_login'	=> $username,
 			'user_password' => $password,
 			'remember' => $remember
-		], false);
+		], is_ssl());
 
 
 		if (is_wp_error($user)) {
@@ -172,7 +156,7 @@
 
 		// Set auth cookie with remember me flag
 		wp_set_current_user($user->ID);
-		wp_set_auth_cookie($user->ID, $remember);
+		wp_set_auth_cookie($user->ID, $remember, is_ssl());
 
 
 
@@ -370,6 +354,9 @@
 		wp_set_current_user($user->ID);
 		wp_set_auth_cookie($user->ID, true);
 
+		if (session_status() === PHP_SESSION_ACTIVE) {
+			session_regenerate_id(true);
+		}
 		// Store session fingerprint
 		$this->storeSessionFingerprint($user->ID, $request);
 
@@ -581,7 +568,7 @@
 		];
 	}
 
-	protected function getRedirect(WP_User $user, string $url, string $context = 'login'):string
+	protected function getRedirect(WP_User $user, ?string $url=null, string $context = 'login'):string
 	{
 		if (!empty($url)) {
 			$url = sanitize_url($url);
@@ -662,7 +649,7 @@
 			}
 
 			// Lockout expired - clear attempts
-			$this->cache->delete($cache_key);
+			$this->cache->forget($cache_key);
 			return true;
 		}
 
@@ -702,7 +689,7 @@
 	protected function clearFailedAttempts(string $username): void
 	{
 		$cache_key = 'login_attempts_' . md5($username);
-		$this->cache->delete($cache_key);
+		$this->cache->forget($cache_key);
 	}
 
 

--
Gitblit v1.10.0