簡體   English   中英

Typo3 FE 編程登錄

[英]Typo3 FE login programatically

在 v10 之后的 Typo3 中,如何使用新的身份驗證服務以編程方式僅使用用戶 ID 號登錄 FE 用戶,而無需呈現要提交的表單?

我有一個自定義的 Typo3 v10 插件,可以對用戶進行身份驗證,並且在 Typo3 v9 和 v10 中運行良好。 檢查憑據后,我使用以下內容:

$userToLogin = 123; //known user id.

$feUser = $GLOBALS['TSFE']->fe_user;
unset($feUser->user);
$feUser->createUserSession($userToLogin);
$feUser->loginSessionStarted = TRUE;
$feUser->user = $feUser->fetchUserSession();
$GLOBALS['TSFE']->loginUser = 1;
$GLOBALS['TSFE']->initUserGroups(); 

//reload the page so that restricted subpages appear in menus
$this->redirectToUri($this->linkThisPage);
            

我需要升級到 V11 並因此改用身份驗證服務進程,因為 $GLOBALS['TSFE']->loginUser 在 Typo3 v11 中被刪除。

我從這篇文章中了解到,這涉及設置自定義服務,該服務在插件 localConf.php 文件中注冊。 問題是關於如何觸發登錄過程? 上面鏈接的示例訴諸於渲染一個大部分隱藏的表單,其中包含一個“確認”提交按鈕,用戶必須按下該按鈕才能觸發登錄過程。 這可能有效,但看起來很糟糕,因為用戶已經在其他地方進行了身份驗證。

有誰知道如何在 controller 中以編程方式觸發身份驗證過程,而不需要提交表單? 提前謝謝了。

當 Typo3 找到帶有logintype=login的請求參數時,將觸發身份驗證服務登錄,然后您的身份驗證服務可以執行它需要執行的操作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM