我有RestAPI应用程序我想在调用我的URL后检查令牌。
我的网址是这样的:127.0.0.1:8000/{api_token}/GetUsers
我的api_token就像md5('test'.time())
我的控制器现在是:
/**
* @Route("/{api_token}")
*/
class UserController extends FOSRestController
{
/**
* @Rest\Get("/GetUsers")
*/
public function getAction($api_token, Request $request)
{
if($api_token != $this->container->get('api_token')->getApiToken())
return ['error'=> ['code' => 403, 'message' => 'Authentication failed']];
//....
}
/**
* @Rest\Post("/RegisterUser")
*/
public function registerAction($api_token, Request $request)
{
if($api_token != $this->container->get('api_token')->getApiToken())
return ['error'=> ['code' => 403, 'message' => 'Authentication failed']];
//....
}
}
这部分代码首先在我的所有操作中运行:
if($api_token != $this->container->get('api_token')->getApiToken())
return ['error'=> ['code' => 403, 'message' => 'Authentication failed']];
这样做的标准和更好的方法是什么?
答案 0 :(得分:3)
您应该使用kernel.request事件 更多信息在这里
Symfony events, Kernel-requets
每次Symfony收到请求都会触发此事件,因此您可以将代码放在事件监听器上,并在每次请求时触发它。