Session TYPO3/Extbase-切换到另一个fe_用户-最后返回到原始用户
我需要一种从当前fe_用户切换到另一个fe_用户(类似于后端“模拟用户”)并返回到原始用户的方法。切换到另一个fe_用户本身并不是问题的一部分。问题是,在哪里存储源用户(切换回哪个用户)信息?工作流程如下所示:Session TYPO3/Extbase-切换到另一个fe_用户-最后返回到原始用户,session,typo3,frontend,extbase,Session,Typo3,Frontend,Extbase,我需要一种从当前fe_用户切换到另一个fe_用户(类似于后端“模拟用户”)并返回到原始用户的方法。切换到另一个fe_用户本身并不是问题的一部分。问题是,在哪里存储源用户(切换回哪个用户)信息?工作流程如下所示: 如果允许fe_用户X(uid:123)进行“切换”(例如,某个fe_用户组的成员) 切换到用户A 切换到用户B ……等等 现在切换回“原始”用户X(uid:123) 我想,关于源用户的信息不应该存储在$GLOBALS['TSFE']->fe_user或子数组中。因为这将使用户A本身能够切
我想,关于源用户的信息不应该存储在$GLOBALS['TSFE']->fe_user或子数组中。因为这将使用户A本身能够切换回X(uid:123),尽管该用户以前从未“是”过该用户。因此,“切换回”信息必须存储在其他任何地方。但是在哪里?您可以使用会话存储来保存信息。您可以将主要fe用户的信息保存在用户会话密钥中,您可以将其用作信息,即这是一个双会话。通过注销,您可以获得旧用户并重新登录 我自己得到了答案。诀窍是将信息存储在“ses”类型的会话数据中(因为“user”在每个开关上都被覆盖)
为什么不在会话中保存UID呢?然后,如果按下开关按钮,您将获得需要切换到的uid并重新创建登录过程
if(!$frontendUserAuthentication->getKey('ses', 'tx_ext_originuser')) {
$frontendUserAuthentication->setKey('ses', 'tx_ext_originuser', $frontendUserAuthentication->user['uid']);
$frontendUserAuthentication->storeSessionData();
}