49 lines
1.4 KiB
PHP
49 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace app\middleware;
|
|
|
|
use \Swoole\Http\Request;
|
|
use \Swoole\Http\Response;
|
|
|
|
class SessionMiddleware
|
|
{
|
|
public function handle($data)
|
|
{
|
|
list($request, $response) = $data;
|
|
if ($request->server['path_info'] == '/favicon.ico' || $request->server['request_uri'] == '/favicon.ico') {
|
|
if (empty($request->cookie)) {
|
|
$response->end();
|
|
}
|
|
}
|
|
|
|
|
|
// var_dump($response);
|
|
|
|
// list($sessionName, $sessionId) = $this->parseSession($request);
|
|
// $request->sessionId = $sessionId;
|
|
// $cookie = session_get_cookie_params();
|
|
// $lifeTime = null;
|
|
// if($cookie['lifetime']){
|
|
// $lifeTime = time() + $cookie['lifetime'];
|
|
// }
|
|
// $response->cookie($sessionName, $sessionId, $lifeTime, $cookie['path'], $cookie['domain'], $cookie['secure'], $cookie['httponly']);
|
|
// try{
|
|
// call_user_func($this->f, $request, $response);
|
|
// }
|
|
// finally{
|
|
// session_write_close();
|
|
// unset($_SESSION);
|
|
// }
|
|
}
|
|
|
|
public function parseSession($request)
|
|
{
|
|
$sessionName = session_name();
|
|
$sessionId = session_create_id();
|
|
if (isset($request->cookie[$sessionName])) {
|
|
$sessionId = $request->cookie[$sessionName];
|
|
}
|
|
return [$sessionName, $sessionId];
|
|
}
|
|
|
|
} |