Intereting Posts
Как наилучшим образом рассчитать расстояние между двумя городами (Канада)? Обработка исключений внешних ключей в PHP Сохранить график phpgraphlib как изображение Как HTML-ссылка «href» вызывает один и тот же файл из разных папок? Пароль не совпадает после шифрования с использованием функций crypt () и password_hash () php сравнить два ассоциативных массива Преобразование HTML в RTF (конвертер HTML2RTF) Как вытащить определенные значения ключа из массива внутри массива Объедините неизвестное количество файлов .mp3 Получить номер недели между двумя датами в php Каковы различные способы написания условных операторов if, использующих PHP? Вызов wordnet из php (класс Wordnet или API для PHP) Как основные сайты определяют часовой пояс? Есть что-то вроде Cythype Python для PHP? Доступ к библиотекам без необходимости писать расширение? Ошибка исключения Laravel – массовое присвоение

как установить новый охранник для контроллера auth в laravel

Я хочу сделать несколько аутентификаций в моем проекте laravel.

Я создаю новый «администратор» в моем файле auth.php, но я не знаю, как установить новый созданный защитник в моем authcontroller.

Он всегда использует настройки «по умолчанию» из моего auth.php:

'defaults' => [ 'guard' => 'web', 'passwords' => 'users', ], 

1) Если вы хотите использовать только что созданный admin в приложении, вы можете изменить значение по умолчанию для файла конфигурации.


2) Если речь идет только об AuthController, который использует встроенную систему Auth в Laravel, вы можете добавить эту строку в AuthController.php и PasswordController.php :

 protected $guard = 'admin'; 

Ref – Проверить настройку Guard здесь


3) Если вы хотите, чтобы у вас был другой защитник, отличный от установленного по умолчанию для любой связанной с Auth задачи, вы можете указать его вручную следующим образом:

 // For route middleware Route::get('profile', [ 'middleware' => 'auth:admin', 'uses' => 'ProfileController@show' ]); // For manually logging the user in if (Auth::guard('admin')->attempt($credentials)) { // Authenticated... } // To login specific user using eloquent model Auth::guard('admin')->login($user); // For getting logged in user Auth::guard('admin')->user(); // To check if user is logged in if (Auth::guard('admin')->check()) { // Logged in } 

Ref – https://laravel.com/docs/5.2/authentication

Laravel 5.4+ использует в любом Auth Controller следующее:

 use Illuminate\Support\Facades\Auth; protected function guard(){ return Auth::guard('guard-name'); } 

Вы также должны зарегистрировать охранник в config\auth.php

 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', ], 'admin' => [ 'driver' => 'session', 'provider' => 'admins', ], ], 

admin – имя охранника, провайдер – TABLE-NAME