为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel - 已安装身份验证但未找到注销路径

Laravel - 已安装身份验证但未找到注销路径

PHP
翻翻过去那场雪 2022-07-29 15:25:06
我制作了一个 laravel 系统,并包含了文档中所述的 Auth 脚手架。我通过使用安装它composer require laravel/ui --devphp artisan ui vue --auth并运行npm install和npm run dev编译资产。但由于某些奇怪的原因,/logout路线返回 404。我的路线看起来像这样Route::get('/', function () {    return view('welcome');});Auth::routes();我不知道在哪里看。我怎样才能解决这个问题?
查看完整描述

2 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

如果你看一下,vendor/laravel/framework/src/Illuminate/Routing/Router.php你会看到这段代码:


public function auth(array $options = [])

{

    // Authentication Routes...

    $this->get('login', 'Auth\LoginController@showLoginForm')->name('login');

    $this->post('login', 'Auth\LoginController@login');

    $this->post('logout', 'Auth\LoginController@logout')->name('logout');

...

这意味着没有GET为注销定义路由,只有POST. 这就是您收到 404 响应的原因。GET如果需要,您可以使用自定义页面自己添加一条路线,例如:


Route::get('/logout', function () {

    return view('my_logout_view');

});


查看完整回答
反对 回复 2022-07-29
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

注销路由是其他人所说的 POST 请求。如果你想使用它,你


 <a href="{{ route('logout') }}" onclick="event.preventDefault(); document.getElementById('logout-form').submit();">Logout</a>


<form id="logout-form" action="{{ route('logout') }}" method="POST" class="hidden">

{{ csrf_field() }}

</form>


请注意,method表单中的 设置为POST并且我们正在使用 ,{{ csrf_field() }}因此我们可以提出该请求。


查看完整回答
反对 回复 2022-07-29
  • 2 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信