Symfony中同一防火墙的匿名和经过身份验证的用户

时间:2018-05-23 05:15:54

标签: php symfony

我有两个auth和api防火墙。但我希望将它们组合起来,并能够检查控制器中是否有某些用户。

{{ forloop.counter }}

我想要做的是将防火墙结合到一个并允许任何用户,但如果JWT被传递,仍然可以识别用户。

有可能吗?

2 个答案:

答案 0 :(得分:0)

在我看来,要实现这一目标,您只需要匹配 ^ / api 模式的防火墙,并继续使用guard authenticator。然后,在验证器内部,检查所请求的确切路由,并选择是继续使用正常的防护验证器流还是使用自定义逻辑来实现json登录。但即使守卫允许你实施自己的逻辑,它也有点脏。保持分离的防火墙听起来更好。

答案 1 :(得分:0)

我认为最好保留单独的防火墙,如前所述,但如果你绝对需要让你的应用程序对所有人开放并检查用户是否在你的控制器中进行了身份验证,你可以参考symfony' s documentation并使用类似的内容:

$this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');