由于我必须以某种方式验证登录数据,普通登录扩展无法处理,因此我必须开发一个自定义登录表单。该登录框是分机的一部分。用 extbase 编写。
但我坚持一个基本问题:我如何处理 extbase 中的 fe_users 会话?
我写了这个函数,也许有帮助:
/** @var $fe_user tslib_feUserAuth */
$fe_user = $GLOBALS['TSFE']->fe_user;
$fe_user->createUserSession(array('uid' => $uid));
$fe_user->user = $fe_user->getRawUserByUid($uid);
$fe_user->fetchGroupData();
$GLOBALS['TSFE']->loginUser = 1;
它的灵感来自Tx_Phpunit_Framework::loginFrontEndUser($userId):
// Instead of passing the actual user data to createUserSession, we
// pass an empty array to improve performance (e.g. no session record
// will be written to the database).
$GLOBALS['TSFE']->fe_user->createUserSession(array());
$GLOBALS['TSFE']->fe_user->user = $GLOBALS['TSFE']->fe_user->getRawUserByUid($userId);
$GLOBALS['TSFE']->fe_user->fetchGroupData();
$GLOBALS['TSFE']->loginUser = 1;