大家好,我无法让它工作 - 我们在其他中央网站上完成了登录,所以用户被重定向回网站 - 一切都很好,然后我们使用普通的 db_provider 和用户实体让他登录 - 一切正常但无法获得 remember_me cookie去工作。
手动登录就像
$token = new UsernamePasswordToken($user, $user->getPassword(), "main", $user->getRoles());
$this->get("security.token_storage")->setToken($token);
然后我们尝试这样做
$rememberMeService = new TokenBasedRememberMeServices(
array($this->getDoctrine()->getManager()->getRepository('AppBundle:User')), $this->container->getParameter('secret'), 'main', array(
'path' => '/',
'name' => 'MyRememberMeCookie',
'domain' => 'localhost',
'lifetime' => 604800, // forever
'always_remember_me' => true,
'remember_me_parameter' => '_remember_me2')
);
而这之后
$response = new Response();
$rememberMeService->loginSuccess($request,$response,$token);
$response->sendHeaders();
在调试中,我可以看到它进入类 Cookie 并且正在设置新的 Cookie,并且该 cookie 在标头中的对象 $response 中,但从不发送到浏览器。
这就是我们在 security.yml 中的内容
remember_me:
secret: '%secret%'
lifetime: 604800 # 1 week in seconds
path: ~
domain: ~
name: MyRememberMeCookie
always_remember_me : true
remember_me_parameter: _remember_me2
任何想法请帮助:)