2015-06-03 1 views
0

Я пытаюсь сделать немного API с Symfony2.Как я могу получить пользователя с сеансом id в запросе param с symfony2

Я посылаю идентификатор сеанса в мой контроллер с URL, как это:

локальный/Symfony2/веб/app_dev.php/пользователей/GetUser/c5auv7mrp45rnd046cfv0vgl96

Затем в Symfony,

/** 
* @Route("/getuser/{sessionId}") 
*/ 
public function getSessionAction(Request $request, $sessionId) 
{ 

    // Here is what i'm trying to do 



    $packJson = array(
     'user_id' => $userid 
    ); 

    $response = new JsonResponse(); 
    $response->setData($packJson); 
    return $response; 
} 

Итак, я хотел бы получить идентификатор пользователя только с аргументом sessionId. Конечно, это будет нагрузка от Db

Я не понимаю логики между объектом Session и User Objet

Благодаря

ответ

0

Я думаю, что вы хотите использовать маркер для идентификации пользователя. Это означает, что у вас есть один токен для каждого пользователя в вашей базе данных. Если это правильно, то это не имеет никакого отношения к сеансам или сеансовому объекту.

вы можете просто получить свой пользователю:

/** 
* @Route("/getuser/{token}") 
*/ 
public function getSessionAction($token) 
{ 

    $em = $this->getDoctrine()->getManager(); 

    $entity = $em->getRepository('AdminBundle:User')->findOneBy(array('token' => $token); 

    $response = new JsonResponse(); 

    if (!$entity) { 
     $response->setData('error' => 'bad token'); 
     return $response; 
    } 

    $packJson = array(
     'user_id' => $entity->getId() 
    ); 

    $response->setData($packJson); 
    return $response; 
} 
+0

нормально, это, кажется, здорово, но я не понимаю, как я могу создать маркер? моя сессия появилась из запроса Ajax. Как я могу создать токен в Symfony и отправить его в свое приложение javascript? –

+0

Интересно, что вы пытаетесь создать. Вам нужна безопасность API? –

+0

да, я пытаюсь это сделать ... –

Смежные вопросы