Symfony2 Application RESTful l'authentification, à l'aide de FOSRestBundle et FOSUserBundle

Je suis en train de faire API REST pour mon JS application gérée par.

Lors de la connexion, le formulaire de connexion est soumis via AJAX url /rest/login de mon API.

  • Si la connexion est réussie, elle renvoie 204
  • Si elle échoue, elle renvoie 401

Que je m'en suis séparé de pare-feu pour l'API et de l'application elle-même, ils partagent le même contexte, ce qui signifie, que lorsque l'utilisateur s'authentifie à l'encontre de l'API, il est authentifié à l'encontre de l'application trop. Ainsi, lorsque le serveur renvoie 204, page sera actualisée et il doit rediriger l'utilisateur de l'application, car il est maintenant connecté.

J'ai essayé d'utiliser pré-faites check_login page de la FOSUserBundle et a souligné /rest/login là.

login:
    path: /rest/login
    defaults:
        _controller: FOSUserBundle:Security:check
    methods: [ POST ]

Qui ne fonctionne pas, car elle renvoie toujours rediriger, n'importe quoi. J'ai lu la documentation de symfony et ne pouvait pas trouver, comment faire un personnalisé check_login page. Ce dont j'ai besoin est quelque chose comme cela

use Symfony\Component\Security\Core\Exception\AuthenticationException;
use FOS\RestBundle\Controller\Annotations\View;    

class SecurityController {

    /**
     * @View(statusCode=204)
     */
    public function loginAction($username, $password) {

        /* first I need to somehow authenticate user 
           using normal authentication, that I've set up */
        ...

        /* Then I need to return 204 or throw exception,
           based on result.
           This is done using FOSRestBundle and it's
           listeners. */

        if(!$succesful) {
            throw new AuthenticationException();
        }
    }
}

Je n'ai pas la moindre idée de comment le faire. Rien de ce que j'ai trouvé dans toute la documentation m'a aidé un peu. Je serai reconnaissant pour toute suggestion serait de me pointer dans la bonne direction.


EDIT: Pour simplifier, ce que je vise. Je veux que ma connexion à fonctionner exactement la même que la normale form_login. Je veux seulement changer la réponse, qu'il envoie en retour - au lieu de rediriger je veux 204 sur la réussite et 401 en cas d'échec.