我已经创建了一个loginsuccesshandler.php,并且正在检查用户是否!这样启用了
public function onAuthenticationSuccess(Request $request, TokenInterface $token)
{
$user = $token->getUser();
if(!$user->isEnabled())
{//do not pass go
$request->getSession()->invalidate();
$this->security->setToken(null);
//$token->setToken(null);
return new RedirectResponse($this->router->generate('account_disabled'));
}
这一行
$request->getSession()->invalidate();
导致以下错误:
Warning: SessionHandler::write(): Parent session handler is not open in /var/www...
但我无法将其删除,因为如果用户点击“记住我”复选框,他们仍会登录。
我遇到了与FOS注销相同的问题,但我将其添加到配置
logout:
invalidate_session: false
答案 0 :(得分:4)
你做错了。 Symfony已经内置了实现这一目标的机制:
User
课程实施AdvancedUserInterface
。