mirror of
http://124.126.16.154:8888/singularity/hdk-auth.git
synced 2026-01-15 05:55:07 +08:00
fix(middleware.session): 修复 secure 字段未设置的问题,增加了 http 不响应 sameSite 的逻辑
This commit is contained in:
@@ -81,16 +81,28 @@ class SessionMiddleware implements MiddlewareInterface
|
||||
ResponseInterface $response,
|
||||
SessionInterface $session
|
||||
): ResponseInterface {
|
||||
$protocol = $request->hasHeader('x-forwarded-proto')
|
||||
? $request->getHeaderLine('x-forwarded-proto')
|
||||
: $request->getUri()->getScheme();
|
||||
$secure = $this->config->get('session.options.secure') ?? $protocol === 'https';
|
||||
|
||||
$samesite = $this->config->get('session.options.samesite');
|
||||
if (!$secure && $samesite === Cookie::SAMESITE_NONE) {
|
||||
$samesite = null;
|
||||
} else {
|
||||
$samesite ??= Cookie::SAMESITE_LAX;
|
||||
}
|
||||
$cookie = new Cookie(
|
||||
name: $session->getName(),
|
||||
value: $session->getId(),
|
||||
expire: $this->getCookieExpirationDate(),
|
||||
path: $this->config->get('session.options.path', '/'),
|
||||
domain: $this->config->get('session.options.domain', $request->getUri()->getHost()),
|
||||
secure: strtolower($request->getUri()->getScheme()) === 'https',
|
||||
secure: $secure,
|
||||
httpOnly: true,
|
||||
sameSite: $this->config->get('session.options.samesite', Cookie::SAMESITE_LAX)
|
||||
sameSite: $samesite
|
||||
);
|
||||
|
||||
if (!method_exists($response, 'withCookie')) {
|
||||
return $response->withHeader('Set-Cookie', (string)$cookie);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user