首页 文章

laravel默认注销无法正常工作

提问于
浏览
1

我使用默认的laravel身份验证并将用户名输入到我的表单中 . 但是当我使用注销时,它显示注销路线并显示错误页面到期 .

这是我的视图注销代码

<ul class="navbar-nav ml-auto">
                    <!-- Authentication Links -->
                    @guest
                            <li><a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a></li>
                    @else
                            <li class="nav-item dropdown">
                                    <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
                                            {{ Auth::user()->name }} <span class="caret"></span>
                                    </a>

                                    <div class="dropdown-menu" aria-labelledby="navbarDropdown">
                                            <a class="dropdown-item" href="{{ route('logout') }}"
                                                 onclick="event.preventDefault();
                                                                             document.getElementById('logout-form').submit();">
                                                    {{ __('Logout') }}
                                            </a>

                                            <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
                                                    @csrf
                                            </form>
                                    </div>
                            </li>
                    @endguest
            </ul>

当我点击注销它显示我/注销网址,它不起作用 . 我该如何修复此错误并重定向到我的/ home路径

2 回答

  • -1

    只需在注销表单中将 @csrf 替换为 {{ csrf_field() }}

    <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
                 {{ csrf_field() }}
     </form>
    

    您的问题,因为没有使用注销表单发送的csrf令牌 .

  • 0

    您的会话Cookie可能存在问题 .

    这可能取决于您的环境,但我之前通过确保 config/session.php 文件包含此行来修复此问题

    'domain' => env('SESSION_DOMAIN', null),

    然后删除 .env 文件中的 SESSION_DOMAIN

    然后 composer dumpautoload

    另外,检查 .env 中的 APP_URL 是否正确 .

相关问题