등록 후 자동 사용자 인증
Symfony 2 비즈니스 애플리케이션을 구축하는 과정에서 자동 사용자 인증의 필요성에 직면하는 경우가 많습니다. 등록 후. 이를 달성하는 방법은 다음과 같습니다.
Symfony 4.0 이상
자동 인증에 대한 접근 방식은 이전 버전의 Symfony와 동일합니다. 다음은 AbstractController를 사용하는 예입니다.
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use YourNameSpace\UserBundle\Entity\User; class LoginController extends AbstractController { public function registerAction() { $user = //Handle getting or creating the user entity likely with a posted form $token = new UsernamePasswordToken($user, null, 'main', $user->getRoles()); $this->container->get('security.token_storage')->setToken($token); $this->container->get('session')->set('_security_main', serialize($token)); // The user is now logged in, you can redirect or do whatever. } }
Symfony 2.6.x - Symfony 3.0.x
이 버전에서는 보안을 위해 security.context가 더 이상 사용되지 않습니다. 토큰_저장. 업데이트된 컨트롤러는 다음과 같습니다.
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use YourNameSpace\UserBundle\Entity\User; class LoginController extends Controller { public function registerAction() { $user = //Handle getting or creating the user entity likely with a posted form $token = new UsernamePasswordToken($user, null, 'main', $user->getRoles()); $this->get('security.token_storage')->setToken($token); $this->get('session')->set('_security_main', serialize($token)); } }
Symfony 2.3.x
이 버전에서는 보안 컨텍스트에서 토큰을 설정하는 것만으로는 충분하지 않습니다. 또한 이를 세션에 저장해야 합니다.
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use YourNameSpace\UserBundle\Entity\User; class LoginController extends Controller { public function registerAction() { $user = //Handle getting or creating the user entity likely with a posted form $token = new UsernamePasswordToken($user, null, 'main', $user->getRoles()); $this->get('security.context')->setToken($token); $this->get('session')->set('_security_main',serialize($token)); //Now you can redirect where ever you need and the user will be logged in } }
사용자 엔터티, 사용자 자격 증명(선택 사항), 방화벽 이름, 사용자 역할과 같은 매개 변수와 함께 UsernamePasswordToken을 사용해야 합니다.
위 내용은 Symfony 등록 후 자동 사용자 인증을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!