Ver Fonte

Fiix cookies with some browsers (#8867)

Fix https://github.com/FreshRSS/FreshRSS/issues/8850
Fix login with e.g. SeaMonkey
Regression due to https://github.com/FreshRSS/FreshRSS/pull/8778
Alexandre Alapetite há 14 horas atrás
pai
commit
8e007af39d
2 ficheiros alterados com 12 adições e 8 exclusões
  1. 2 0
      app/Controllers/authController.php
  2. 10 8
      lib/Minz/Session.php

+ 2 - 0
app/Controllers/authController.php

@@ -187,6 +187,8 @@ class FreshRSS_auth_Controller extends FreshRSS_ActionController {
 				Minz_Request::setBadNotification(_t('feedback.auth.login.invalid'));
 				Minz_Request::setBadNotification(_t('feedback.auth.login.invalid'));
 				Minz_Request::forward(['c' => 'auth', 'a' => 'login'], false);
 				Minz_Request::forward(['c' => 'auth', 'a' => 'login'], false);
 			}
 			}
+		} else {
+			Minz_Session::deleteLegacyCookie('FreshRSS');	// Delete legacy cookie (before 1.29.0)
 		}
 		}
 	}
 	}
 
 

+ 10 - 8
lib/Minz/Session.php

@@ -55,14 +55,6 @@ class Minz_Session {
 
 
 		session_name($name);
 		session_name($name);
 
 
-		// Delete legacy cookie (before 1.29.0) if it exists
-		if (isset($_COOKIE[$name])) {
-			$legacyDir = self::getLegacyCookieDir();
-			if ($legacyDir !== '' && $legacyDir !== '/') {
-				setcookie($name, '', ['expires' => 1, 'path' => $legacyDir]);
-			}
-		}
-
 		// When using cookies (default value), session_start() sends HTTP headers
 		// When using cookies (default value), session_start() sends HTTP headers
 		session_start();
 		session_start();
 		session_write_close();
 		session_write_close();
@@ -205,6 +197,16 @@ class Minz_Session {
 		return $cookie_dir;
 		return $cookie_dir;
 	}
 	}
 
 
+	/** Delete legacy cookie (before 1.29.0) if it exists */
+	public static function deleteLegacyCookie(string $name): void {
+		if (isset($_COOKIE[$name])) {
+			$legacyDir = self::getLegacyCookieDir();
+			if ($legacyDir !== '' && $legacyDir !== '/') {
+				setcookie($name, '', ['expires' => 1, 'path' => $legacyDir]);
+			}
+		}
+	}
+
 	/**
 	/**
 	 * Regenerate a session id.
 	 * Regenerate a session id.
 	 */
 	 */