可能重複:
Automatic post-registration user authenticationSymfony2:如何手動登錄用戶?
我要登錄註冊後用戶。我可以通過發送帶有用戶名和密碼的POST請求到/ login_check來執行此操作。至少我認爲它可能會成功。但更好的解決方案是通過控制器中的php代碼實現它,但我不知道如何使用Symfony2來完成此操作。
可能重複:
Automatic post-registration user authenticationSymfony2:如何手動登錄用戶?
我要登錄註冊後用戶。我可以通過發送帶有用戶名和密碼的POST請求到/ login_check來執行此操作。至少我認爲它可能會成功。但更好的解決方案是通過控制器中的php代碼實現它,但我不知道如何使用Symfony2來完成此操作。
如果我沒有記錯,訣竅是將令牌直接設置爲security.context
服務。由於您使用的是用戶名/密碼對,因此您可以實例化一個UsernamePasswordToken
類並將其設置在安全上下文中。
$securityContext = $this->get('security.context');
$token = new UsernamePasswordToken($username, $password, $providerKey, $roles);
$securityContext->setToken($token);
對於$user
,$password
和$roles
參數,這是顯而易見的。對於$providerKey
,我必須承認,我完全不知道要在這一個中放置什麼。因此,也許從AuthenticationProvider
獲取令牌可能會更容易,或者如果您已經有權訪問TokenInterface
對象。
我的anwser的主要觀點是通過方法setToken
將令牌直接設置到SecurityContext
對象中。但我不確定如何檢索或創建令牌:)
希望得到這個幫助。
問候,
馬特
$ providerKey是防火牆的名稱,如app/config/security.yml中設置的那樣 –
@Problematic:它的工作原理!謝謝。 – Harry