0

我正在我的应用程序中开发一个 RESTful 接口(使用 FOSRestBundle),我希望它始终返回一些有意义的 JSON 响应,即使非交互式身份验证失败(例如,用户在登录会话期间被锁定)。现在它只是重定向到登录页面。

我虽然可以使用某种核心异常监听器来实现它,但我不知道要监听哪些异常,甚至不知道它是否可能。

一些提示将不胜感激。

4

1 回答 1

0

您必须从路线中删除“登录约束”。

例如,如果您有类似的东西,您security.yml - { path: ^/admin, role: ROLE_ADMIN }必须用它替换- { path: ^/admin, role: IS_AUTHENTICATED_ANONYMOUSLY }并检查他是否已登录您的控制器。要检查用户在控制器中的角色,请使用

$securityContext = $this->container->get('security.context');
if( $securityContext->isGranted('IS_AUTHENTICATED_ANONYMOUSLY') ){  
   return;//send error json

}
//is logged in and authorized

当他实际上登录时,照常进行,否则发送您的自定义响应。

我强烈不建议您这样做,因为您需要维护更多代码并且要犯更多错误,如果您想保护数据更是如此。

于 2014-02-20T22:58:37.577 回答