我目前正在Extbase 1.3 / Typo3 4.5中开发一个商店扩展,其中结帐流程将在与商店不同的域下处理(域A有商店和HTTP,域B有结帐和HTTPS)。在结账过程中,我需要访问域A的前端用户会话的内容(例如,用于检索位置)。我通过将控制器中的前端用户ID传递给结账
来尝试此操作$this->uriBuilder->reset();
$this->uriBuilder->setArguments(array('fe_typo_user'=>$GLOBALS ['TSFE']->fe_user->id));
$url = $this->uriBuilder->uriFor('newCheckout');
$this->redirectToUri($url);
但这似乎对域B中用户的创建没有任何影响(域B中的用户ID与域A中的传入用户ID不同)。
有没有办法按用户会话ID设置当前前端用户?如果用户会话已在域A创建并且我想在域B重用此用户,这是否可能?
非常感谢
答案 0 :(得分:1)
$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');