Настройка охраны в Laravel для индивидуальной аутентификации - PullRequest
0 голосов
/ 09 мая 2018

Я просмотрел документацию Laravel для пользовательской аутентификации. И я изучал аутентификацию Guard как:

Настройка охраны Вы также можете настроить «охрану», которая используется для аутентификации и регистрации пользователей. Чтобы начать, определите метод защиты на LoginController, RegisterController и ResetPasswordController. Метод должен вернуть экземпляр защиты:

use Illuminate\Support\Facades\Auth;

protected function guard()
{
    return Auth::guard('guard-name');
}

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

Существует также сценарий, согласно которому администратор может назначить полномочия администратора другим пользователям. Из-за отсутствия подробного объяснения в документации Laravel я не мог понять, как я могу использовать охрану для вышеуказанного случая. Какой может быть другой лучший вариант?

1 Ответ

0 голосов
/ 09 мая 2018

guard-name - это имя вашего охранника. Существует также полный пример того, как добавить свою собственную охрану (https://laravel.com/docs/5.6/authentication#adding-custom-guards).

Предусмотрены средства защиты для определения различных методов аутентификации (например, на основе сеанса или токена). Для меня это звучит так, будто вы ищете ворота и правила в Laravel. С их помощью вы можете авторизовать пользователя для данного ресурса. https://laravel.com/docs/5.6/authorization

При использовании политик вы можете определить фильтры. Эти фильтры будут вызываться перед любым другим методом в политике. Таким образом, с помощью фильтра before вы можете проверить, является ли пользователь администратором.

public function before($user, $ability)
{
    if ($user->isSuperAdmin()) {
        return true;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...