Bonjour,
Je suis en train de développer des web services pouvant gérer les utilisateurs, j'ai donc d'installé FosUserBundle pour gérer les utilisateurs et FosRestBundle pour gérer mes web services.
Pour le moment j'ai copié/collé ce qu'il y a dans le contrôleur de FosUserBundle :
Lorsque je fais une requête POST avec comme paramètre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public function postUpdateAction(Request $request, $userId) { $user = $this->container->get('security.context')->getToken()->getUser(); if (!is_object($user)) { throw new AccessDeniedException('This user does not have access to this section.'); } $form = $this->container->get('fos_user.profile.form'); $formHandler = $this->container->get('fos_user.profile.form.handler'); $process = $formHandler->process($user); if ($process) { $this->setFlash('fos_user_success', 'profile.flash.updated'); return new RedirectResponse($this->getRedirectionUrl($user)); } return $this->container->get('templating')->renderResponse( 'FOSUserBundle:Profile:edit.html.'.$this->container->getParameter('fos_user.template.engine'), array('form' => $form->createView()) ); }
fos_user_profile_form[email] = toto@toto.com
Il m'affiche le formulaire avec comme erreur "Le jeton CSRF est invalide. Veuillez renvoyer le formulaire." ce qui est normal vu que je n'ai pas affiché le formulaire à la base et que j'ai directement donné les valeurs en POST.
Ce que j'aimerais savoir :
- Comment désactiver la protection CSRF uniquement à ce moment là ? (Tout en le gardant pour le formulaire présent sur le site)
- Est-il possible de changer le "name" du formulaire, c'est-à-dire ne pas avoir besoin de donner "fos_user_profile_form[email]" mais juste"email" dans la variable POST, est-ce possible ou je dois tout gérer moi même ?
Merci d'avance =)
Partager