Невозможно проверить авторизацию на той же странице в laravel - PullRequest
0 голосов
/ 20 мая 2019

Это мой первый проект Laravel.Я делаю веб-сайт с логином пользователя. Вопрос в том, когда я ввожу свой URL, затем всегда открываю домашнюю страницу. Если пользователь вошел в систему, то он отображает имя на панели навигации, а для гостя всегда отображается как гость. Я не хочу менять URLдля обоих случаев .... Даже когда гость после входа в систему идет на тот же URL-адрес, но затем этот пользователь отображается как пользователь авторизации.Пожалуйста, помогите мне Как я могу это сделать.Я пользуюсь концепцией с сайта электронной коммерции.

Route::group(['middleware' => 'web'], function () {
    Route::get('/', 'WebController@loadPage');
    Route::get('/signin', 'WebController@login');
});

это мой маршрут. Я уже меняю навигационную панель, используя @auth и @ guest. Но как сначала проверить, что пользователь авторизован или нет, не меняя URL.

Ответы [ 2 ]

0 голосов
/ 20 мая 2019

Если вы используете загрузчик в своем приложении, вы можете отредактировать панель навигации, чтобы она выглядела примерно так:

<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
0 голосов
/ 20 мая 2019

Вы можете использовать промежуточное ПО для аутентифицированных маршрутов. если вы используете laravel по умолчанию auth, тогда просто установите промежуточное ПО маршрутов для ваших аутентифицированных маршрутов, как показано ниже

Route::group(['middleware' => 'auth'],function (){
 //Your Protected routes goes here
});

или если вы хотите перенаправить своего пользователя на какой-либо пользовательский маршрут после входа в систему, то просто вы можете отредактировать это в LoginCOntroller внутри Controller/Auth и установить varibale protected $redirectTo = '/YourRedirectionPath';

Предлагаю вам прочитать документацию, она хорошо документирована Документация по аутентификации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...