【发布时间】:2020-09-25 00:14:32
【问题描述】:
当我尝试使用_switch_user 切换用户(模拟)时,Symfony 给了我一个错误。它可能在更改会话表名称后开始发生。其他一切正常(在不模拟的情况下从会话中设置和获取数据)。
警告:session_start():解码会话对象失败。会话已被销毁
来自日志的精确错误
[2020-05-21 11:28:37] php.WARNING:警告:session_start():无法解码会话对象。会话已被销毁 {"exception":"[object] (ErrorException(code: 0): Warning: session_start(): 无法解码会话对象。会话已在 /app/my_app/vendor/symfony/http-foundation 销毁/Session/Storage/NativeSessionStorage.php:151)"} []
触发错误的精确行 (\src\EventListener\MyListener.php)
public function onKernelRequest(RequestEvent $event) {
$request = $event->getRequest();
$request->getSession()->set('hash', $_ENV['HASH']);
}
我的会话处理程序配置 (config\services.yml)
Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler:
public: false
arguments:
- 'mysql:host=%env(DATABASE_HOST)%;dbname=%env(DATABASE_NAME)%'
- { db_table: 'my_sessions', db_username: '%env(DATABASE_USER)%', db_password: '%env(DATABASE_PASSWORD)%', lock_mode: 0 }
我的会话配置 (config\packages\framework.yml)
session:
handler_id: Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler
cookie_samesite: 'none'
cookie_secure: true
cookie_httponly: true
gc_probability: 0
我正在使用
- Symfony 4.4.2
- PHP 7.2
- “friendsofsymfony/user-bundle”:“2.1.2”
【问题讨论】: