2013-07-11 5 views
1

매우 직접적인 방법으로 사용자를 인증합니다 (FOSUserBundle, Symfony2.2). I'am 사소한 예제를 시도했지만 작동하지 않습니다 :이 스크립트가 실행FOSUserBundle이 선택된 사용자를 인증합니다.

... 
use FOS\UserBundle\Controller\RegistrationController as RegController; 
... 
class DefaultController extends Controller{ 
... 
public function indexAction(){ 
$route = 'first_set_profile'; 
$url = $this->container->get('router')->generate($route); 
$response = new RedirectResponse($url); 
$userManager = $this->get('fos_user.user_manager'); 
$userToLogIn = $userManager->findUserByEmail('[email protected]'); 
new RegController(authenticateUser($userToLogIn, $response)); 
... 
} 

을하지만, 이메일 [email protected] ...

감사와 사용자를 인증하지 않습니다

답변

3

이것은 당신이 프로그램 예를 들어 데모 사용자를 인증 할 수있는 방법입니다 :

use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken; 

public function demologinAction(Request $request) 
{ 
    $userManager = $this->get('fos_user.user_manager'); 
    $user = $userManager->findUserByEmail('[email protected]'); 

    if (!$user) { 
     throw $this->createNotFoundException('No demouser found!'); 
    } 

    $token = new UsernamePasswordToken($user, $user->getPassword(), 'main', $user->getRoles()); 

    $context = $this->get('security.context'); 
    $context->setToken($token); 

    $router = $this->get('router'); 
    $url = $router->generate('dashboard_show'); 

    return $this->redirect($url); 
} 

UsernamePasswordToken의 세 번째 매개 변수는 방화벽 이름이어야합니다.

+0

감사합니다. Pazi, 감사합니다. – karpatil

관련 문제