我试图用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之间的逻辑
由于
答案 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;
}