나는 내가 일하는 회사 인 웹 애플리케이션을 대체 할 건물을 짓고있다. 그것은 CakePHP 1.3을 사용하여 만들어졌으며 Symfony 2를 사용하여 처음부터 다시 작성하고 있습니다.이 두 시스템은 Symfony 2로 이전되고 다양한 CakePHP 응용 프로그램에서 제거 된 다양한 기능과 나란히 실행될 것입니다.Symfony 2를 사용하여 쿠키를 읽는 방법?
로그인 정보와의 혼동을 피하기 위해 CakePHP를 완전히 끌 수 있고 Symfony 2의 보안에 의존 할 때까지 CakePHP가 사물의 사용자 로그인을 처리하도록합니다. 그 동안 CakePHP 애플리케이션은 사용자 ID가 포함 된 쿠키를 생성합니다. Symfony에이 쿠키를 초보적인 형태의 보안으로 사용하고 싶습니다.
그러나 Symfony가 생성 된 쿠키를 읽거나로드 할 수 없습니다. 파이어 버그를 사용
public function securitytestAction()
{
$request = $this->getRequest($_COOKIE);
$cookie = $request->headers->getCookies('CakeCookie[passport]');
print_r($cookie);
return $this->render('InstructorBundle:Default:test.html.twig');
}
, CakePHP의가 로그인시 발생 쿠키는 'CakeCookie [여권]'이름 : 여기 내 코드입니다. 암호화되지도 않았습니다.
내가 오류는 이것이다 :
FatalErrorException: Error: Call to undefined method Symfony\Component\HttpFoundation\HeaderBag::getCookies() in DefaultController.php line 713
나는이 작업을 얻기 위해 무엇을 할 수 있을까?
편집
Cheesemacfly를 교체 제안했다 :
$request = $this->getRequest($_COOKIE);
$cookie = $request->headers->getCookies();
을 함께 그냥이 :
$request = $this->getRequest()->cookies->all();
나는 다음과 같은 응답을 얻을 :
을Array ([PHPSESSID] => gptbmh61mfkqn6p86d3suhnt13)
내가 CakePHP는이 쿠키를 생성하는 데 사용되는 코드를 찾고 있었고,이 쿠키에 대한 도메인을 제공하지 않은 2
편집 할 수 있습니다. 이제는 도메인이 .domain.org
이되도록 고정하여 하위 도메인에서도 액세스 할 수 있도록했습니다.
이제 Firebug를 사용하는 Symfony2 응용 프로그램으로 이동하면 다른 두 개의 CakePHP 세션 쿠키 (나와는 필요 없음)와 함께 나열된 쿠키를 볼 수 있습니다. 3 개의 CakePHP 도메인은 서브 도메인 new.domain.org
을 볼 때도 모두 www.domain.org
을 사용하지만 symfony2가 사용하는 하나의 쿠키는 new.domain.org
.Symfony2라는 도메인 이름을 표시하지만 원하는 쿠키는로드하지 않습니다.
매개 변수없이'$ request-> headers-> getCookies()'를 호출하면 어떻게 될까요? – cheesemacfly
나는 @cheesemacfly와 같은 오류를 얻었고, 나는 그 질문을 그에 따라 바꿀 것이다. – mickburkejnr
'$ this-> getRequest() -> cookies-> all()'을 사용하는 것은 어떻습니까? 아니면'$ this-> getRequest() -> cookies-> get ('CakeCookie [여권]')? – cheesemacfly