在我的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可以访问该页面。
登录有效,登录后我可以在菜单中看到受保护的页面并可以访问它。但是,重定向到受保护页面不起作用。我最终在主页上。看起来登录在重定向发生时不是完全活跃,而是在页面完全加载一次之后。
知道如何在重定向之前完全应用登录吗?
答案 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函数。然后应在请求新页面之前完成登录。