TYPO3:在编程登录fe_user后将用户重定向到受保护的页面

时间:2017-02-28 14:56:52

标签: php typo3 extbase typo3-7.6.x

在我的Extbase扩展中,我编写了自己的登录机制,触发手动登录为fe_user,如下所示:

$GLOBALS['TSFE']->fe_user->checkPid = 0;
$info = $GLOBALS['TSFE']->fe_user->getAuthInfoArray();
$user = $GLOBALS['TSFE']->fe_user->fetchUserRecord($info['db_user'], $feUsername);

$GLOBALS['TSFE']->fe_user->createUserSession($user);
$GLOBALS['TSFE']->fe_user->setAndSaveSessionData('dummy', TRUE);
$GLOBALS['TSFE']->loginUser = 1;

this->redirect(null, null, null, null, 38);

之后,我将用户重定向到以某种方式设置了用户组访问权限的页面(ID 38),以便只有这个fe_user可以访问该页面。

登录有效,登录后我可以在菜单中看到受保护的页面并可以访问它。但是,重定向到受保护页面不起作用。我最终在主页上。看起来登录在重定向发生时不是完全活跃,而是在页面完全加载一次之后。

知道如何在重定向之前完全应用登录吗?

2 个答案:

答案 0 :(得分:1)

to force redirection to access restricted pages:

$uri = $this->uriBuilder->reset()
                ->setTargetPageUid($yourTargetUid)
                ->setCreateAbsoluteUri(true)
                ->setLinkAccessRestrictedPages(true)
                ->buildFrontendUri();

答案 1 :(得分:0)

我的建议:使用UriBuilder构建动作的URI并使用AbstractController-> redirectToUri函数。然后应在请求新页面之前完成登录。