[ExtJS] Autentification des utilisateurs avec AJAX
Bonjour à tous,
J'ai un problème assez important à régler utilisant les fonctionnalités d'autentification proposées par Symfony2.
Mon formulaire de connexion est un formulaire Extjs avec un bouton submittant les informations de mon formulaire avec AJAX. Ce formulaire est inclus dans un template twig géré par l'action d'un controlleur.
Voici le bout de code permettant le submit :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
buttons: [{
text: 'Se connecter',
handler: function(){
var form = this.up('form').getForm();
form.submit({
clientValidation: true,
url: '{{url}}',
success: function(form, action) {
//location.href="{{url2}}"
}
});
}
}] |
Voici le controlleur contenant l'action appelant le formulaire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
<?php
namespace UmanTeam\UmanProjectBundle\Controller;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Security\Core\SecurityContext,
use Symfony\Component\Security\Core\Exception\AuthenticationException;
use Symfony\Component\HttpFoundation\Response;
class IndexController extends Controller
{
public function indexAction()
{
return $this->render(
'UmanTeamUmanProjectBundle:Index:index.html.twig',
array(
'url' => $this->generateUrl('ajax', array(),true),
'url2' => $this->generateUrl('projets', array(),true)
)
);
}
} |
L'url appelée lors de l'appel AJAX mène vers une action ajaxAction dans un controlleur projetController. J'ai édité mon routing.yml de la facon suivante :
Code:
1 2 3 4 5 6 7
| login:
pattern: /
defaults: { _controller: UmanTeamUmanProjectBundle:Index:index }
ajax:
pattern: /Projets/ajax
defaults: { _controller: UmanTeamUmanProjectBundle:Projet:ajax } |
J'utilise comme providers les données d'une table utilisateur et j'ai donc édité mon security.yml de la façon suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
UmanTeam\UmanProjectBundle\Entity\Utilisateur: plaintext
providers:
in_memory:
users:
user: { password: userpass, roles: [ 'ROLE_USER' ] }
admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
umanteam:
entity: { class: UmanTeam\UmanProjectBundle\Entity\Utilisateur, property: utilisateurLogin }
frontend:
pattern: ^/Projet
provider: umanteam
form_login:
check_path: /Projet/ajax
login_path: / |
Mon problèmes est que l'autentification ne s'effectue jamais et de ce fait je reviens toujours vers ma page d'accueil. Aurais-je manqué quelque chose?
Merci d'ava,ce