如何使用symfony2在param请求中获取具有id会话的用户

时间:2015-06-03 16:18:53

标签: symfony

我试图用Symfony2做一点API。

我使用以下网址向控制器发送会话ID:

本地主机/ 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参数检索我的用户ID。 当然,它将从Db加载

我不理解Session对象和User Objet之间的逻辑

由于

1 个答案:

答案 0 :(得分: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;
}