这是我的第一个laravel项目。我正在用登录用户创建一个网站。我的问题是当我输入我的网址然后打开总是主页时。如果用户登录了,那么它将在导航栏中显示名称,对于来宾总是显示为来宾。我不想更改网址对于这两种情况...。即使访客登录后也进入相同的URL,但是该用户显示为auth用户。请帮我怎么做。我从电子商务网站了解概念。
Route::group(['middleware' => 'web'], function () {
Route::get('/', 'WebController@loadPage');
Route::get('/signin', 'WebController@login');
});
这是我的路线。我已经使用@auth和@guest更改了navbar。但是如何首先检查用户r auth是否不更改url。
答案 0 :(得分:0)
您可以将中间件用于经过身份验证的路由。
如果您使用laravel的默认auth
,则只需为经过身份验证的路由设置路由中间件,如下所示
Route::group(['middleware' => 'auth'],function (){
//Your Protected routes goes here
});
或者如果您想在登录后将用户重定向到某些自定义路由,则可以在LoginCOntroller
内的Controller/Auth
中进行编辑,并设置变量protected $redirectTo = '/YourRedirectionPath';
我建议您阅读Authentication documentation有据可查的文档
答案 1 :(得分:0)
如果您在应用程序中使用引导程序,则可以将导航栏编辑为类似于以下内容:
<nav class="navbar navbar-expand-md navbar-light navbar-default">
<div class="container">
<a class="navbar-brand" href="{{ url('/') }}">
{{ config('app.name') }}
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="{{ __('Toggle navigation') }}">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<!-- Left Side Of Navbar -->
<ul class="navbar-nav mr-auto">
</ul>
<!-- Right Side Of Navbar -->
<ul class="navbar-nav ml-auto">
<!-- Authentication Links -->
@guest
<li class="nav-item">
<a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a>
</li>
@if (Route::has('register'))
<li class="nav-item">
<a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a>
</li>
@endif
@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 dropdown-menu-right" 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>
</div>
</div>
</nav>
工作原理:
@guest
// Logged as guest - shows login/register buttons.
@else
// Logged as auth user - shows username and logout button in dropdown menu.
@endguest