2012-01-15 14 views
5

Soy nuevo con symfony2 y estoy intentando conectarme con FOSUserBundle a través de una API de reposo. La autenticación del navegador web funciona bien y puedo crear usuarios con FOSUserBundle. De hecho, quiero construir un servicio web con Symfony. ¿Cómo puedo conectar un usuario vie rest? ¿Es un paquete para usar el resto con symfony2 fácilmente?Autenticación mediante reposo con symfony2

Gracias.

+2

Usted debe echar un vistazo a [FOSRestBundle] (https://github.com/FriendsOfSymfony/FOSRestBundle). –

Respuesta

0

Para autenticar al usuario, primero crea una acción que tomará el nombre de usuario y la contraseña. Luego, busca al usuario de la base de datos de acuerdo con el nombre de usuario y la contraseña. Para hacer el pase como en la base de datos, debe hacer la contraseña, ya que FOSUserBundle lo está haciendo. Más tarde necesitas crear UsernamePasswordToken. Para que pueda usar el siguiente código en la acción

$providerKey = $this->container->getParameter('fos_user.firewall_name'); 
$token = new UsernamePasswordToken($user, null, $providerKey, $user->getRoles()); 
$this->container->get('security.context')->setToken($token); 

Creo que lo ayudará.

+4

esta es una respuesta incorrecta. La API REST debe tener un proveedor de autenticación personalizado para no utilizar cookies para mantener al usuario conectado. este es un buen artículo sobre cómo hacerlo. http://symfony.com/doc/2.0/cookbook/security/custom_authentication_provider.html –

1

Sugeriría usar "Wsse" como método de autorización.

Puede leer sobre eso en this post. Incluso hay a bundle que proporcionan rutinas wsse.

Acerca hacer REST-ful su aplicación, se recomienda usar FosRestBundle

Cuestiones relacionadas