如何检查用户是否已登录Symfony?

ltqd579y  于 7个月前  发布在  其他
关注(0)|答案(3)|浏览(73)

我得到了这个表格:

{{ form_start(form) }}
        <input type="submit" class="form_submit_button" name="register_interest" value="Add to favourites"/>

        {{ form_end(form) }}

字符串
我想检查用户是否已登录,我这样做了:

{% if is_granted('IS_AUTHENTICATED_FULLY') %}


如果用户没有登录,它会隐藏按钮。
我希望该按钮显示,即使我没有登录,并在表单提交后,检查用户是否登录。
我该怎么做?
谢谢你,谢谢

rslzwgfq

rslzwgfq1#

检查必须在php控制器中执行。此外,您还可以执行JavaScript检查,以防止在用户未登录时提交表单。
要检查控制器中的用户登录,请执行以下操作:

if ($this->isGranted('ROLE_USER') == false) {
      // show some error message, throw exception etc...
  }

字符串
另一种方法是:

$this->denyAccessUnlessGranted('ROLE_USER');


要在客户端(JavaScript)进行检查,您可以这样做:

{% if not is_granted('IS_AUTHENTICATED_REMEMBERED') %}

<script>
  // wrap into document.ready() if needed
  $('#your_submit_button_id').on('click', function(e) {
    e.preventDefault();
    alert('You must be logged in to use this function');
  });
</script>

{% endif %}

iqjalb3h

iqjalb3h2#

你可以这样尝试:

{% if app.user %}
    {{ form_start(form) }}
        <input type="submit" class="form_submit_button" name="register_interest" value="Add to favourites"/>

    {{ form_end(form) }}
{% else %}
     <input type="button" class="form_submit_button" name="register_interest" value="Add to favourites"/>
{% endif %}

字符串

iecba09b

iecba09b3#

这是很容易的Symfony5+今天。我想分享,因为这一页是第一次在谷歌搜索结果。

$this->denyAccessUnlessGranted('IS_AUTHENTICATED');

字符串

相关问题