2017-02-28 57 views
0

的綱領性登錄我Extbase後延重定向用戶到受保護的頁面,我寫我自己的登錄機制,即觸發手動登錄因爲這樣的fe_user:TYPO3: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

是否有你不使用它的身份驗證服務(其意做你想做什麼正確)有一定道理的? – lorenz

+0

不,我沒有注意到任何用於fe_user登錄的TYPO3內部認證服務。你有一個例子嗎? – Rob

回答

0

我的建議:使用UriBuilder構建URI的動作並使用AbstractController-> redirectToUri函數。然後在請求新頁面之前完成登錄。

1

強制重定向到訪問受限制的網頁:

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