0

我目前正在 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 中重用该用户,这可能吗?

非常感谢

4

1 回答 1

1

朋友们,多么简单的一天,多么简单的答案。神奇的词是 FE_SESSION_KEY。有了这个,您可以在多域typo3 安装上维护会话:

$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');
于 2012-11-05T11:20:10.057 回答