如何使用symfony2在param请求中获取id为会话的用户
我正在尝试用Symfony2做一个小API 我使用如下URL向控制器发送会话id: localhost/symfony2/web/app_dev.php/users/getuser/c5auv7mrp45rnd046cfv0vgl96 然后,在Symfony如何使用symfony2在param请求中获取id为会话的用户,symfony,Symfony,我正在尝试用Symfony2做一个小API 我使用如下URL向控制器发送会话id: localhost/symfony2/web/app_dev.php/users/getuser/c5auv7mrp45rnd046cfv0vgl96 然后,在Symfony /** * @Route("/getuser/{sessionId}") */ public function getSessionAction(Request $request, $sessionId) { // Here i
/**
* @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加载
我不理解会话对象和用户对象之间的逻辑
谢谢我想您应该使用令牌来识别用户。这意味着数据库中的每个用户都有一个令牌。如果这是正确的,那么它与会话或会话对象无关 您可以使用以下简单方法检索您的用户:
/**
* @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;
}
好的,看起来很酷,但我不明白如何生成令牌?我的sessionId来自Ajax请求。我怎样才能在Symfony中创建一个令牌并将其发送到我的javascript应用程序?我想知道你想创建什么。您需要API上的安全性吗?