【发布时间】:2021-06-15 03:04:58
【问题描述】:
当我尝试http://domain.test/logout 时显示“此路由不支持 GET 方法。支持的方法:POST”
但是使用 post 方法的正常注销工作完美。如何更改 /logout 路由 Post 来获取。 在 Jetstream 中,强化
【问题讨论】:
标签: laravel laravel-8 fortify jetstream
当我尝试http://domain.test/logout 时显示“此路由不支持 GET 方法。支持的方法:POST”
但是使用 post 方法的正常注销工作完美。如何更改 /logout 路由 Post 来获取。 在 Jetstream 中,强化
【问题讨论】:
标签: laravel laravel-8 fortify jetstream
如果您使用php artisan route:list 列出您的路由,您会看到为 POST 定义了注销路由,因此您只需向该路由提交表单即可触发注销。
发布 |登出 | Laravel\Fortify\Http\Controllers\AuthenticatedSessionController@destroy |网络
现在,如果您希望将该函数转换为响应 GET 方法,则需要在 /vendor/laravel/fortify/routes/route.php 中更改该路由
我没有用任何方式测试过,但是方法和路线都有。
【讨论】:
如果还有人在找它,你可以试试这个。 在 Laravel 8 中,get 方法不支持注销路由,您可以尝试下面的 post 方法。
<form method="POST" action="{{ route('logout') }}">
@csrf
<div class="nav-item">
<a class="nav-link" href="{{ route('logout') }}" onclick="event.preventDefault();
this.closest('form').submit(); " role="button">
<i class="fas fa-sign-out-alt"></i>
{{ __('Log Out') }}
</a>
</div>
</form>
您也可以通过签入来尝试此操作,如果它已登录,则它会显示您注销,否则它将显示您登录。
@if (auth()->id())
<form method="POST" action="{{ route('logout') }}">
@csrf
<div class="nav-item">
<a class="nav-link" href="{{ route('logout') }}" onclick="event.preventDefault();
this.closest('form').submit(); " role="button">
<i class="fas fa-sign-out-alt"></i>
{{ __('Log Out') }}
</a>
</div>
</form>
@else
<li class="nav-item">
<a class="nav-link" href="{{ route('login') }}" role="button">
<i class="fas fa-sign-in-alt"></i>
Login
</a>
</li>
@endif
【讨论】: