[英]Login form does not work, keeps loading again after submitting in Symfony2
我正在Symfony2中創建一個博客應用程序,我想創建一個登錄表單。 到目前為止我做了什么:
它只是不想工作。 當我嘗試提交用戶名和密碼時,我得到的只是一個登錄表單。 我認為這是路線的問題,但我無法弄明白。 誰能指出我在哪里有任何錯誤?
SecurityController:
<?php
namespace BlogBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Request;
class SecurityController extends Controller
{
/**
* @Route("login", name="login")
*/
public function loginAction()
{
$authUtil = $this->get('security.authentication_utils');
// error content
$error = $authUtil->getLastAuthenticationError();
// username entered by the user
$lastUsername = $authUtil->getLastUsername();
return $this->render('BlogBundle:Default:login.html.twig', array(
'error' => $error,
'last_username' => $lastUsername)
);
}
}
security.yml:
security:
providers:
db_provider:
entity:
class: BlogBundle:Users
property: username
firewalls:
main:
anonymous: ~
form_login:
provider: db_provider
login_path: login
check_path: login
登錄表格:
<form role="form" action="{{ path('login') }}" method="post">
<div class="form-group">
<input class="form-control" id="username" placeholder="Username" name="_username" type="text" autofocus>
</div>
<div class="form-group">
<input class="form-control" id="password" placeholder="Password" name="_password" type="password" value="">
</div>
<button type="submit" class="btn btn-lg btn-success btn-block">Login</button>
為什么在已經有捆綁的情況下重新發明輪子。 查看FOSUserBundle。 它是一個很棒的捆綁包,提供靈活的安全框架,允許您從配置或數據庫加載用戶。 http://symfony.com/doc/current/bundles/FOSUserBundle/index.html希望它有所幫助!
好吧,所以我似乎找到了解決方案。 你看,當你在Symfony 2中閱讀制作表單的教程時,它告訴你為login_path和check_path創建相同的路由。 http://symfony.com/doc/2.8/cookbook/security/form_login_setup.html
我沒有意識到這條路線與SecurityController中的loginAction相關聯,因此每當我嘗試提交表單時,它都會返回到loginAction,我在那里渲染登錄頁面。
解決方案是在SecurityController中創建另一個方法:
/**
* @Route("login_check", name="login_check")
*/
public function loginCheck(){
}
我把它留空了,但如果你願意,你可以放一些異常處理程序,如:
throw new \Exception("Oops")
當然,我還將security.yml中的post post action和check_path更改為login_check
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.