在Symfony 2.3或更高版本中这样做的最佳方法是什么:
我有一个网页,可以张贴在公共区域或安全地区。
当用户打开受保护的网页版本时,让我们说/SecureArea/ page 1只能看到内容并做更多的事情,但是当用户没有登录时,他们可以在/PublicArea/page 1中看到相同的内容,但只能看到内容没有做任何其他事情,至少他们登录。
在Symfony中保护网页是很容易的,你把你的网页放在一个安全的区域,但我想做的是在这两种情况下都有相同版本的网页,用户可以看到相同的内容,但只有当他们登录到系统时才能做更多的事情。我不想重复自己,创建两个不同版本的同一页。
发布于 2015-12-22 21:02:47
在这种情况下,您可以根据twig中的is_granted('IS_AUTHENTICATED_FULLY')来决定该做什么,这基本上是检查当前用户是否登录,因此示例如下:
{% if is_granted('IS_AUTHENTICATED_FULLY') %}
{# do something that only logged in users could see #}
{% else %}
{# do something that unauthenticated users can see #}
{% endif %}如果要检查用户是否已登录或未登录控制器,请选择:
if ($this->get('security.authorization_checker')->isGranted('IS_AUTHENTICATED_FULLY')) {
// user logged in
} else {
// not logged in
}https://stackoverflow.com/questions/34424250
复制相似问题