diff --git a/system/typemill/Middleware/SessionMiddleware.php b/system/typemill/Middleware/SessionMiddleware.php
index 1914e6a..bb21251 100644
--- a/system/typemill/Middleware/SessionMiddleware.php
+++ b/system/typemill/Middleware/SessionMiddleware.php
@@ -14,18 +14,24 @@ class SessionMiddleware implements MiddlewareInterface
protected $segments;
protected $route;
+
+ protected $uri;
- public function __construct($segments, $route)
+ public function __construct($segments, $route, $uri)
{
$this->segments = $segments;
$this->route = $route;
+
+ $this->uri = $uri;
}
public function process(Request $request, RequestHandler $handler) :response
{
+ $scheme = $request->getUri()->getScheme();
+
# start session
- Session::startSessionForSegments($this->segments, $this->route);
+ Session::startSessionForSegments($this->segments, $this->route, $scheme);
$authenticated = (
(isset($_SESSION['username'])) &&
@@ -51,7 +57,6 @@ class SessionMiddleware implements MiddlewareInterface
}
}
-
$response = $handler->handle($request);
return $response;
diff --git a/system/typemill/Static/Session.php b/system/typemill/Static/Session.php
index e0d3011..907378e 100644
--- a/system/typemill/Static/Session.php
+++ b/system/typemill/Static/Session.php
@@ -4,25 +4,25 @@ namespace Typemill\Static;
class Session
{
- public static function startSessionForSegments($sessionSegments, $routepath)
+ public static function startSessionForSegments($sessionSegments, $routepath, $scheme)
{
+ if(isset($_SESSION))
+ {
+ return false;
+ }
+
$routepath = ltrim($routepath, '/');
foreach($sessionSegments as $segment)
{
- #echo '
' . $segment;
- #echo '
' . $routepath;
if(substr( $routepath, 0, strlen($segment) ) === ltrim($segment, '/'))
{
- #echo '
Create Session';
-
# configure session
ini_set('session.cookie_httponly', 1 );
ini_set('session.use_strict_mode', 1);
ini_set('session.cookie_samesite', 'lax');
- /*
- if($uri->getScheme() == 'https')
+ if($scheme == 'https')
{
ini_set('session.cookie_secure', 1);
session_name('__Secure-typemill-session');
@@ -31,14 +31,15 @@ class Session
{
session_name('typemill-session');
}
- */
# start session
session_start();
-# break;
+ return true;
}
}
+
+ return false;
}
public static function stopSession()
diff --git a/system/typemill/system.php b/system/typemill/system.php
index fe55eb4..833f226 100644
--- a/system/typemill/system.php
+++ b/system/typemill/system.php
@@ -336,7 +336,7 @@ $errorMiddleware->setErrorHandler(HttpNotFoundException::class, function ($reque
$app->add($errorMiddleware);
-$app->add(new SessionMiddleware($session_segments, $urlinfo['route']));
+$app->add(new SessionMiddleware($session_segments, $urlinfo['route'], $uri));
if(isset($settings['proxy']) && $settings['proxy'])
{