0
votes

I want to make my index page with both guest and auth functions.

When guests visit, they could try logging in; And after login, it will show the user's info such as username.

Route routes/web.php:

Route::get('vendor', function () {
    return view('vendor.home');
})->name('vendor')->middleware('web');

in blade template i use Auth::check() to authentication but failed.if i use middleware(['web','auth:vendor']) if guest will redirect to login page

@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()) }}

Every time I logged in successfully, it will still show login button instead of user name button, after I REFRESH the index page.

this result enter image description here enter image description here

2
Depending on your version you can use @guest ... @endguest or @auth ... @endauth in Blade.brombeer
@guest and @auth not workingstory ks
You have to add middleware auth on your routetirta keniten
if i add middleware auth on ->middleware(['web','auth']); guest will denystory ks

2 Answers

0
votes

try replace Auth:: with \Auth:: or auth()

@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::user()) }}
0
votes

This my answer

@if(Auth::guard('vendor')->check())
                    <li class="dropdown">
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
                            {{ Auth::guard('vendor')->user()->name }} <span class="caret"></span>
                        </a>

                        <ul class="dropdown-menu" role="menu">
                            <li>
                                <a href="{{ route('vendor.dashboard') }}">Dashboard</a>
                            </li>
                            <li>
                                <a href="{{ route('vendor.logout') }}" >Log Out</a>
                            </li>
                        </ul>
                    </li>
                @else
                    <li><a href="{{route('vendor.login')}}"> <strong><i class="fa fa-lock"></i> Login </strong> </a></li>
                    <li><a href="{{route('vendor.register')}}" class="btn btn-success btn-lg"> <strong>Register</strong> </a></li>
                @endif