TYPO3 6.1 - 如何通过代码登录fe_user?

时间:2013-12-31 13:25:45

标签: typo3 typo3-6.1.x

我正在使用TYPO3 6.1并尝试通过代码(通过PHP和USER_INT包含)登录FE用户。

此代码对我不起作用。 :(任何想法为什么?

// try to login the user now
$loginData = array(
    'uname'   => trim($postData['username']), //usernmae
    'uident'  => trim($postData['password']), //password
    'status'  => 'login'
);

// $GLOBALS['TSFE']->fe_user-checkPid=0; //do not use a particular pid
$GLOBALS['TSFE']->fe_user->checkPid = $this->feUserPid; // ''; //do not use a particular pid
$info = $GLOBALS['TSFE']->fe_user->getAuthInfoArray();

// 
$user = $GLOBALS['TSFE']->fe_user->fetchUserRecord(
    $info['db_user'], $loginData['uname']
);

$ok = $GLOBALS['TSFE']->fe_user->compareUident($user, $loginData);

//
if($ok) 
{        
    // login successfull
    $GLOBALS['TSFE']->fe_user->createUserSession($user);

    // 
    $content = '<h3 class="green">LOGIN OK!</h3>';
    $content .= '<p>Sie sind eingeloggt als ' . $feUsername . ' und wurden nun weitergeleitet...</p>';
} 
else 
{
    // login failed
    $content = '<h3 class="red">LOGIN FAILED!</h3>'; 
} 

感谢任何提示!

2 个答案:

答案 0 :(得分:0)

从TYPO3 4.7开始,您必须使用$ loginData ['uident_text']而不是$ loginData ['uident']作为密码。

如果问题仍然存在,请提供更多信息,确切地说出现了什么问题,日志说明了等等。

答案 1 :(得分:0)

compareUident()为您返回TRUE吗? 我,fx有一个案例,我自动登录刚刚创建的用户。而且由于某种原因,compareUident()并没有为我工作,但正如我所知,同一网站访问者刚刚创建了用户,我跳过该功能并继续启动所有会话变量。以下是TYPO3 6.1的工作代码:

$loginData = array(
    'uname' => $postdata['username'],
    'uident' => $postdata['password'],
    'status' => 'login',
);
$GLOBALS['TSFE']->fe_user->checkPid = 0;
$info = $GLOBALS['TSFE']->fe_user->getAuthInfoArray();
$user = $GLOBALS['TSFE']->fe_user->fetchUserRecord($info['db_user'], $loginData['uname']);
//if($GLOBALS['TSFE']->fe_user->compareUident($user, $loginData)) {
$GLOBALS['TSFE']->fe_user->user = $GLOBALS['TSFE']->fe_user->fetchUserSession();
$GLOBALS['TSFE']->loginUser = 1;
$GLOBALS['TSFE']->fe_user->fetchGroupData(); 
$GLOBALS['TSFE']->fe_user->start();
$GLOBALS['TSFE']->fe_user->createUserSession($user);
$GLOBALS['TSFE']->fe_user->loginSessionStarted = TRUE;
//}

灵感来自:

https://stackoverflow.com/a/7738383/445364

https://typo3.org/extensions/repository/view/dix_easylogin

相关问题