2012-11-04 4 views
0

현재 Extabase 1.3/Typo3 4.5에 상점 확장 기능을 개발 중입니다. 여기서 체크 아웃 프로세스는 상점과 다른 도메인에서 처리됩니다 (도메인 A에는 상점 및 HTTP가 있으며, 도메인 B에는 체크 아웃 및 HTTPS가 있음). 체크 아웃 프로세스에서 도메인 A의 프론트 엔드 사용자 세션의 콘텐츠에 액세스해야합니다 (예 : 위치 검색). 나는Extbase : 도메인 B에서 도메인 A의 세션에 액세스하십시오.

$this->uriBuilder->reset(); 
$this->uriBuilder->setArguments(array('fe_typo_user'=>$GLOBALS ['TSFE']->fe_user->id)); 
$url = $this->uriBuilder->uriFor('newCheckout'); 
$this->redirectToUri($url); 

과 체크 아웃에 내 컨트롤러의 프론트 엔드 사용자 ID를 전달하여이 시도하지만이 사용자 ID는 도메인 B에 다른 도메인 B (에서 사용자의 생성에 어떤 영향을하지 않는 것 도메인 A에서 전달 된 것보다).

사용자 세션 ID로 현재 프론트 엔드 사용자를 설정하는 방법이 있습니까? 사용자 세션이 도메인 A에서 생성되었고 도메인 B에서이 사용자를 다시 사용하려면이 작업이 가능합니까?

고마워요.

답변

1

친구, 무슨 하루 간단한 답변. 마법의 단어는 FE_SESSION_KEY입니다. 이를 통해 다중 도메인 오타 3 설치시 세션을 유지 관리 할 수 ​​있습니다.

$sessionId = $GLOBALS['TSFE']->fe_user->id; 
$hash = md5($GLOBALS['TSFE']->fe_user->id.'/'.$GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey']); 
$sessionKey = rawurlencode($sessionId.'-'.$hash); 

$this->uriBuilder->reset(); 
$this->uriBuilder->setArguments(array('FE_SESSION_KEY'=>$sessionKey)); 
$url = $this->uriBuilder->uriFor('newCheckout'); 
관련 문제