Laravel 6 Полностью настраиваемая система аутентификации - PullRequest
0 голосов
/ 04 марта 2020

Я начинаю создавать приложение через Laravel, и я новичок. Я хочу создать собственную систему аутентификации, потому что текущая система не очень подходит для моего варианта использования.

Мои пользователи будут входить через логин и пароль. Регистрация не существует, потому что все учетные записи пользователей будут управляться мной самостоятельно.

Моя проблема с реализацией Laravel заключается в том, что у меня она немного отличается от версии Laravel. Моя таблица пользователей, например, не будет иметь временных отметок. Я попытался встроить в поставляемую версию с помощью документации, но мне не удалось.

Другая проблема заключается в том, что я также хочу использовать @auth в синтаксисе blade-сервера с моей собственной реализацией.

Есть ли интерфейс, позволяющий сказать, что пользователь вошел в систему, как? * (простите за плохой английский sh)

1 Ответ

0 голосов
/ 04 марта 2020

Я не знаю, является ли это большим ответом, но не очень хорошим комментарием, так что ...

Например, в таблице «Мои пользователи» не будет отметок времени.

Почему? Есть ли конкретная c причина? Laravel справится со всем этим для вас; на самом деле делать особо нечего - вроде приятного небольшого бонуса, если позже вам нужно будет показать «Последний вход» или «Когда этот пользователь был создан?»

Если вы хотите удалить их, Вы хотите посмотреть на ваши миграции. В частности, миграция create_users_table. Вы можете найти это здесь:

/database/migrations/2014_10_12_000000_create_users_table.php

Дата может быть другой, но это файл, который вы должны искать. В этом файле вы должны увидеть что-то вроде этого:

...
$table->rememberToken();
$table->timestamps();  // remove or comment this line out.
...

Это строка, которая создает столбцы created_at и updated_at в вашей базе данных.

Как только вы прокомментируете эту строку вы можете повторно запустить миграцию (и), чтобы обновить базу данных: php artisan migrate:refresh. В этот момент вы больше не должны видеть столбцы отметок времени.

Вам может также необходимо обновить некоторые логи контроллера c. Я всегда просто оставлял их там, поэтому не могу с уверенностью сказать, что ты хорош для go.

Blade

При работе с blade-сервером вы можете проверить текущего пользователя следующим образом:

Auth::user()

Например, у меня может быть что-то как это на моей домашней странице:

<h1>Hello, {{ Auth::user()->name }}</h1> // Hello, Damon

Другой вариант, если вам нужно проверить, вошел ли пользователь в систему или нет, вы можете использовать @guest.

Пример:

@guest
    <li class="nav-item">
        <a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a>
    </li>
@else
    <li class="nav-item">
        <a class="nav-link" href="{{ route('logout') }}">{{ __('Logout') }}</a>
    </li>
@endguest

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

На уровне контроллера вы можете проверить текущего пользователя следующим образом:

// Get the authenticated user
$user = auth()->user();

Очень простым примером может быть что-то вроде:

MyController. php

public function example() {
    // Get the authenticated user.
    $user = auth()->user();

    // Redirect if not logged in.
    if($user) {
        return view('my-view');
    } else {
        return redirect('login');
    }
}

Laravel Документы отлично справляются с настройкой. Вы можете сделать так, чтобы аутентификация была такой, какой вы захотите.

Я не верю, что действительно ответил на ваш вопрос, но, надеюсь, помог дать некоторое представление или вещи для рассмотрения.

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