답변:
app.user가 설정되어 있는지 확인할 수 있습니다.
{% if app.user %}
# user is logged in
{% else %}
# user is not logged in
{% endif %}
{% if is_granted('IS_AUTHENTICATED_FULLY') %}
대신 사용하십시오 . Symfony2 문서 참조 : symfony.com/doc/current/book/… . Silex에서도 사용 가능 : silex.sensiolabs.org/doc/providers/…
{% if is_granted('IS_AUTHENTICATED_FULLY') %}
은 사용자가 현재 세션에서 인증 된 경우에만 true를 반환합니다. 사용자가 Remember me 쿠키를 통해 인증되면 false를 반환합니다. {% if app.user %}
사용자가 인증 된시기에 관계없이 true를 반환하려면 사용 이 정확합니다.
{% if app.security.token is null or app.security.token.user == 'anon.' %}
의 나는 나를 위해 일하고있어 어떻게
현재 답변이 OP의 질문에 대한 답변이지만 더 자세한 내용을 추가하고 싶습니다.
나는 OP가 역할을 확인하고 싶지 않다는 것을 이해하지만, 다른 SO 사용자가 나중에 여기에서 복사하여 붙여 넣을 수 있도록 포함하고 있습니다. -내가 이걸 구글링 할 때마다 여기까지 온다!
Symfony Doc 출처 :
대답, 당신은 사용할 수 app.user
있는지 확인하는 어떤 사용자가 로그인됩니다.
{% if app.user %}
# user is logged in (any and all users, regardless of ROLE_*)
{% elseif not app.user %}
# user is not logged in (note the `not` in the `elseif` statement)
{% endif %}
이 is_granted()
방법을 사용하여 ROLES
, (아래는 심포니에서 할당 한 모든 역할입니다. 자신의 역할을 가질 수도 있습니다 (아래 참조) ).
{% if is_granted('IS_AUTHENTICATED_FULLY') %}
# This user entered their credentials THIS session
{% elseif is_granted('IS_AUTHENTICATED_REMEMBERED') %}
# User logged in via a cookie (ie: Auth again before doing sensitive things)
{% elseif is_granted('IS_AUTHENTICATED_ANONYMOUSLY') %}
# This is a `guest` or anonymous user
{% endif %}
문서에서 :
IS_AUTHENTICATED_ANONYMOUSLY-사이트의 방화벽으로 보호 된 부분에 있지만 실제로 로그인하지 않은 사용자에게 자동으로 할당됩니다. 익명 액세스가 허용 된 경우에만 가능합니다.
IS_AUTHENTICATED_REMEMBERED-Remember me 쿠키를 통해 인증 된 사용자에게 자동으로 할당됩니다.
IS_AUTHENTICATED_FULLY-현재 세션 동안 로그인 세부 정보를 제공 한 사용자에게 자동으로 할당됩니다.
is_granted()
역할을 확인 하는 데 사용할 수도 있습니다 .
우리는 3 개 역할을 가정 ( ROLE_SUPER_ADMIN
, ROLE_ADMIN
, ROLE_USER
)
{% if is_granted('ROLE_SUPER_ADMIN') -%}
# You're `ROLE_SUPER_ADMIN`
{% elseif is_granted('ROLE_ADMIN') -%}
# You're `ROLE_ADMIN`
{% elseif is_granted('ROLE_USER') -%}
# You're `ROLE_USER`
{% else %}
# You're a `nobody` ;P
{%- endif %}
-%}
을 {%-
의미합니까? 왜 안 %}
와 {%
?
-
후행 공백을 모두 제거하여 브라우저 소스 소스에서 더 쉽게 읽을 수 있도록합니다. 자세한 정보 : twig.sensiolabs.org/doc/templates.html#whitespace-control
app.user
과 같습니다 The value stored in this variable can be a UserInterface object, any other object which implements a __toString() method or even a regular string.
. app.user가 "anon"을 반환하는 곳을 읽은 곳이 기억 나지 않습니다. 불행히도 어떤 상황에서 문자열.
The representation of the current user or null if there is none.
으므로 null이됩니다. 사용자 지정 UserInterface
구현에 __toString()
익명 일 때 호출 되는 메서드 가있는 경우 타사 번들은 문자열을 반환 할 수 있습니다.
{% if not app.user %}