2013-04-30 1 views
4

로그인이 성공하면 세션 쿠키를 설정할 수 있습니까? 이벤트 리스너? 그렇다면 어떤 사건입니까? 그리고 응답 객체에 액세스하여 쿠키를 첨부 할 수 있습니까?symfony 2 : 로그인시 현재 세션의 쿠키 설정

+0

쿠키가 필요하거나 세션에 저장할 필요가 있습니까? –

+0

쿠키 여야합니다! – vinnylinux

+0

핑! 당신은 대답을 가지고 있어요 :) –

답변

9

kernel.response Event을 수신하고 응답을 수정하는 EventListener를 만들 수 있습니다. 당신의 services.yml에서

namespace Acme\DemoBundle\EventListener 
use Symfony\Component\HttpKernel\Event\FilterResponseEvent; 
use Symfony\Component\HttpFoundation\Cookie; 

class AddMyCookie 
{ 
    public function onKernelResponse(FilterResponseEvent $event) 
    { 
     $response = $event->getResponse(); 

     if (/** whatever **/) { 
      $response->headers->setCookie(new Cookie('cookie_name', 'cookie_value')); 
     } 
    } 
} 

: 당신이 쿠키 (security_context, usermanager, 세션 등)을 설정하는 결정해야 무엇이든

parameters: 
    acme_demo.add_my_cookie.class: Acme\DemoBundle\EventListener\AddMyCookie 

services: 
    acme_demo.add_my_cookie.kernel_response_listener: 
     class: %acme_demo.add_my_cookie.class% 
     tags: 
      - { name: kernel.event_listener, event: kernel.response, method: onKernelResponse } 

는 DI 컨테이너 저점을 주입 할 수있다.

+0

'/ ** 무엇이든 ** /'은 무엇입니까? 예를 들어 주시겠습니까? –

+0

쿠키를 추가하기 위해 어떤 결정을 내리 든간에 if에 들어가야합니다. –

+0

자격 증명을 확인하는 것과 비슷합니까? 작은 예제를 추가해야한다고 생각합니다. –