mirror of
http://124.126.16.154:8888/singularity/hdk-auth.git
synced 2026-01-15 03:35:05 +08:00
revert(middleware): SessionMiddleware.php
This commit is contained in:
@@ -22,7 +22,7 @@ use Psr\Http\Server\MiddlewareInterface;
|
||||
use Psr\Http\Server\RequestHandlerInterface;
|
||||
|
||||
/**
|
||||
* Singularity\HDK\Auth\Middleware\SessionMiddleware@HDK-Core
|
||||
* Singularity\HDK\Core\Middleware\SessionMiddleware@HDK-Core
|
||||
*
|
||||
* @author 李东云 <Dongyun.Li@LuxCreo.Ai>
|
||||
* Powered by PhpStorm
|
||||
@@ -52,25 +52,7 @@ class SessionMiddleware implements MiddlewareInterface
|
||||
$response = $handler->handle($request);
|
||||
} finally {
|
||||
$this->storeCurrentUrl($request, $session);
|
||||
$session = $this->sessionManager->getSession();
|
||||
|
||||
/*
|
||||
* 现在的机制,但凡写入 Redis 的数据,
|
||||
* 过期时间就是固定的 gc_maxlifetime
|
||||
*
|
||||
* 而 RedisHandler 只会被依赖注入时加载一次,
|
||||
* 后续无法临时修改 gc_maxlifetime
|
||||
*
|
||||
* 又因为现在没有其他情况用到 session
|
||||
* 只有登录之后才会记下用户信息
|
||||
*
|
||||
* 所以一个妥协的方案,就是只有登录了再写入 Redis
|
||||
*
|
||||
* (除非重写整套 RedisHandler/RedisHandlerFactory/...)
|
||||
*/
|
||||
if ($this->auth($session)) {
|
||||
$this->sessionManager->end($session);
|
||||
}
|
||||
$this->sessionManager->end($session);
|
||||
}
|
||||
|
||||
return $this->addCookieToResponse($request, $response, $session);
|
||||
@@ -102,7 +84,7 @@ class SessionMiddleware implements MiddlewareInterface
|
||||
$cookie = new Cookie(
|
||||
name: $session->getName(),
|
||||
value: $session->getId(),
|
||||
expire: $this->getCookieExpirationDate($session),
|
||||
expire: $this->getCookieExpirationDate(),
|
||||
path: $this->config->get('session.options.path', '/'),
|
||||
domain: $this->config->get('session.options.domain', $request->getUri()->getHost()),
|
||||
secure: $this->config->get(
|
||||
@@ -133,10 +115,9 @@ class SessionMiddleware implements MiddlewareInterface
|
||||
/**
|
||||
* Get the session lifetime in seconds.
|
||||
*/
|
||||
private function getCookieExpirationDate(SessionInterface $session): int
|
||||
private function getCookieExpirationDate(): int
|
||||
{
|
||||
// if ($this->config->get('session.options.expire_on_close')) {
|
||||
if (!$this->auth($session)) {
|
||||
if ($this->config->get('session.options.expire_on_close')) {
|
||||
$expirationDate = 0;
|
||||
} else {
|
||||
$expireSeconds = $this->config->get('session.options.cookie_lifetime', 5 * 60 * 60);
|
||||
@@ -153,8 +134,4 @@ class SessionMiddleware implements MiddlewareInterface
|
||||
return rtrim(preg_replace('/\?.*/', '', (string)$request->getUri()));
|
||||
}
|
||||
|
||||
private function auth(SessionInterface $session)
|
||||
{
|
||||
return $session->has('userInfo');
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user