mirror of
https://github.com/processwire/processwire.git
synced 2025-08-11 09:14:58 +02:00
Added support for cookie domain
This commit is contained in:
@@ -274,6 +274,12 @@ $config->sessionFingerprint = 1;
|
|||||||
*/
|
*/
|
||||||
$config->sessionCookieSecure = 1;
|
$config->sessionCookieSecure = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cookie domain
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
$config->sessionCookieDomain = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Number of session history entries to record.
|
* Number of session history entries to record.
|
||||||
*
|
*
|
||||||
|
@@ -738,7 +738,7 @@ class Session extends Wire implements \IteratorAggregate {
|
|||||||
$this->set('_user', 'challenge', $challenge);
|
$this->set('_user', 'challenge', $challenge);
|
||||||
$secure = $this->config->sessionCookieSecure ? (bool) $this->config->https : false;
|
$secure = $this->config->sessionCookieSecure ? (bool) $this->config->https : false;
|
||||||
// set challenge cookie to last 30 days (should be longer than any session would feasibly last)
|
// set challenge cookie to last 30 days (should be longer than any session would feasibly last)
|
||||||
setcookie(session_name() . '_challenge', $challenge, time()+60*60*24*30, '/', null, $secure, true); // PR #1264
|
setcookie(session_name() . '_challenge', $challenge, time()+60*60*24*30, '/', $this->config->sessionCookieDomain, $secure, true); // PR #1264
|
||||||
}
|
}
|
||||||
|
|
||||||
if($this->config->sessionFingerprint) {
|
if($this->config->sessionFingerprint) {
|
||||||
@@ -892,10 +892,10 @@ class Session extends Wire implements \IteratorAggregate {
|
|||||||
$time = time() - 42000;
|
$time = time() - 42000;
|
||||||
$secure = $this->config->sessionCookieSecure ? (bool) $this->config->https : false;
|
$secure = $this->config->sessionCookieSecure ? (bool) $this->config->https : false;
|
||||||
if(isset($_COOKIE[$sessionName])) {
|
if(isset($_COOKIE[$sessionName])) {
|
||||||
setcookie($sessionName, '', $time, '/', null, $secure, true);
|
setcookie($sessionName, '', $time, '/', $this->config->sessionCookieDomain, $secure, true);
|
||||||
}
|
}
|
||||||
if(isset($_COOKIE[$sessionName . "_challenge"])) {
|
if(isset($_COOKIE[$sessionName . "_challenge"])) {
|
||||||
setcookie($sessionName . "_challenge", '', $time, '/', null, $secure, true);
|
setcookie($sessionName . "_challenge", '', $time, '/', $this->config->sessionCookieDomain, $secure, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -150,7 +150,7 @@ class SessionHandlerDB extends WireSessionHandler implements Module, Configurabl
|
|||||||
$query = $database->prepare("DELETE FROM `$table` WHERE id=:id");
|
$query = $database->prepare("DELETE FROM `$table` WHERE id=:id");
|
||||||
$query->execute(array(":id" => $id));
|
$query->execute(array(":id" => $id));
|
||||||
$secure = $this->wire('config')->sessionCookieSecure ? (bool) $this->config->https : false;
|
$secure = $this->wire('config')->sessionCookieSecure ? (bool) $this->config->https : false;
|
||||||
setcookie(session_name(), '', time()-42000, '/', null, $secure, true);
|
setcookie(session_name(), '', time()-42000, '/', $this->config->sessionCookieDomain, $secure, true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user