symfony2 で簡単なアプリケーションを作成しました。ユーザーは自分のユーザー名とパスワードでログインできます。ログイン画面の簡単なビューを作成してから、コントローラーでユーザー資格情報を確認します。私は symfony2 セキュリティを使用していません。ここに私のコントローラーコードがあります:-
namespace College\UserBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use College\UserBundle\Entity\User;
use College\UserBundle\Entity\Usertype;
use College\UserBundle\Form\LoginForm;
use College\UserBundle\Form\RegisterForm;
class UserController extends Controller
{
public function indexAction()
{
$entity = new User();
$form = $this->createForm(new LoginForm(), $entity);
$request = $this->getRequest();
if ($request->getMethod() == 'POST') {
$form->bindRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()
->getEntityManager();
$em->persist($entity);
$userrepository = $em->getRepository('CollegeUserBundle:User');
$auth = $userrepository->findOneBy(array('login' => $entity->getLogin(), 'password' => $entity->getPassword()));
if($auth)
{
$session = $this->getRequest()->getSession();
$session->set('user', $auth);
$this->get('session')->setFlash('notice', 'You Have Successfully Logged In!');
return $this->redirect($this->generateUrl('CollegeUserBundle_home'));
}
else
return $this->render('CollegeUserBundle:User:loginpage.html.twig',array(
'form' => $form->createView(), 'error' => 'Please Correct Your Login Details And Enter the Correct login and Password', ));
}
}
return $this->render('CollegeUserBundle:User:loginpage.html.twig',array(
'form' => $form->createView()
));
}
public function loginAction()
{
$session = $this->get('session')->get('user');
return $this->render('CollegeUserBundle:User:home.html.twig', array(
'info' => $session,));
}
public function logoutAction()
{
$this->get('request')->getSession()->invalidate();
return $this->redirect($this->generateUrl('CollegeUserBundle_index'));
}
ルーティング.yml
CollegeUserBundle_index:
pattern: /
defaults: { _controller: CollegeUserBundle:User:index }
requirements:
_method: GET|POST
CollegeUserBundle_home:
pattern: /home
defaults: { _controller: CollegeUserBundle:User:login }
requirements:
_method: GET|POST
CollegeUserBundle_logout:
pattern: /logout
defaults: { _controller: CollegeUserBundle:User:logout }
requirements:
_method: GET
エンティティ (User.php)
This file contains all user details including Username, Created Date, login, password and usertype.
今、symfony セキュリティですべての認証と認証を行いたいと考えています。チュートリアルを読みましたが、すべてを理解できませんでした。同じコントローラーで認証する方法、ADMIN_ROLE、USER_ROLE、これらの ROLES のテーブルを作成する必要があるかなど。このトピックに関連して多くの混乱があります。今までチュートリアルは素晴らしいと思いましたが、ここで私は道に迷っており、それを手伝ってくれる人が必要です.