Symfony 2 템플릿 (Twig 사용)에서 사용자가 로그인하지 않았는지 어떻게 효과적으로 확인할 수 있습니까?
ROLE
수표 를 사용하고 싶지 않습니다 . 사용자가 로그인하지 않았는지 확인하는 간단한 방법을 원합니다.
작품 과 비교 app.user.username
하는 것은 잘 알고 anon
있지만, 그저 나에게 옳지 않다고 생각합니다.
답변
app.user가 설정되어 있는지 확인할 수 있습니다.
{% if app.user %}
# user is logged in
{% else %}
# user is not logged in
{% endif %}
답변
현재 답변이 OP의 질문에 대한 답변이지만 더 자세한 내용을 추가하고 싶습니다.
나는 OP가 역할을 확인하고 싶지 않다는 것을 이해하지만, 다른 SO 사용자가 나중에 여기에서 복사하여 붙여 넣을 수 있도록 포함하고 있습니다. -내가 이걸 구글링 할 때마다 여기까지 온다!
Symfony Doc 출처 :
- http://symfony.com/doc/current/book/security.html
- http://symfony.com/doc/current/cookbook/security/remember_me.html
로그인 한 사용자가 있는지 확인합니다 (역할에 관계없이).
대답, 당신은 사용할 수 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 %}