【发布时间】:2018-12-19 06:15:39
【问题描述】:
我想让我的索引页同时具有访客和身份验证功能。
客人来访时,可以尝试登录;登录后会显示用户名等信息。
路由routes/web.php:
Route::get('vendor', function () {
return view('vendor.home');
})->name('vendor')->middleware('web');
在刀片模板中,我使用Auth::check() 进行身份验证但失败。如果我使用middleware(['web','auth:vendor']),如果访客将重定向到登录页面
@if(Auth::guest())
<li><a href="{{route('vendor.login')}}"> <strong><i class="fa fa-user"></i> Login </strong> </a></li>
<li><a href="{{route('vendor.register')}}" class="btn btn-primary oval btn-lg"> <strong>Register</strong> </a></li>
@else
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
{{ Auth::user()->name }} <span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="{{ route('vendor.logout') }}" class="btn btn-default btn-flat">Log Out</a>
</li>
</ul>
</li>
@endif
{{ dd(Auth::check()) }}
每次我登录成功,在我刷新索引页面后,它仍然会显示登录按钮而不是用户名按钮。
【问题讨论】:
-
根据您的版本,您可以在 Blade 中使用
@guest ... @endguest或@auth ... @endauth。 -
@guest和@auth不工作 -
你必须在你的路由上添加中间件身份验证
-
如果我在
->middleware(['web','auth']);上添加中间件身份验证,来宾将拒绝
标签: php laravel authentication middleware