1
0
mirror of https://github.com/processwire/processwire.git synced 2025-08-10 00:37:02 +02:00

Added support for cookie domain

This commit is contained in:
Derixithy
2016-11-07 20:14:52 +01:00
parent 2d9e959bf2
commit 3897df4436
3 changed files with 10 additions and 4 deletions

View File

@@ -274,6 +274,12 @@ $config->sessionFingerprint = 1;
*/
$config->sessionCookieSecure = 1;
/**
* Cookie domain
*
*/
$config->sessionCookieDomain = null;
/**
* Number of session history entries to record.
*

View File

@@ -738,7 +738,7 @@ class Session extends Wire implements \IteratorAggregate {
$this->set('_user', 'challenge', $challenge);
$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)
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) {
@@ -892,10 +892,10 @@ class Session extends Wire implements \IteratorAggregate {
$time = time() - 42000;
$secure = $this->config->sessionCookieSecure ? (bool) $this->config->https : false;
if(isset($_COOKIE[$sessionName])) {
setcookie($sessionName, '', $time, '/', null, $secure, true);
setcookie($sessionName, '', $time, '/', $this->config->sessionCookieDomain, $secure, true);
}
if(isset($_COOKIE[$sessionName . "_challenge"])) {
setcookie($sessionName . "_challenge", '', $time, '/', null, $secure, true);
setcookie($sessionName . "_challenge", '', $time, '/', $this->config->sessionCookieDomain, $secure, true);
}
}

View File

@@ -150,7 +150,7 @@ class SessionHandlerDB extends WireSessionHandler implements Module, Configurabl
$query = $database->prepare("DELETE FROM `$table` WHERE id=:id");
$query->execute(array(":id" => $id));
$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;
}