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で現在のフロントエンドユーザーを設定する方法はありますか? ユーザー セッションがドメイン 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 に答える