Необходимо переопределить контроллер авторизации на Ларавель. Подскажите, правильный ли flow?

Хочу сделать кастомную авторизацию на Laravel и избавиться от стандартного ларавель токена, заменив его своим.

У меня зарегистрирован middleware CheckAuth который проверяет токен и записывает его в сессию. Так же есть Provider, выполняющий ту же функцию но вместе с расшифровкой, на который на данный момент завязана большая часть кода.

Что хочу сделать:

  • Переопределить session->user() функцию для дальнейшего использования в blade, а так же добавить метод проверки роли в session->role() session->is_admin();
  • Добавить методы Auth::check() и прочие доступные после jetstream методы на кастомные.
public function handle(Request $request, Closure $next){
...
  if($this->tryauth()){
    if(self::$user !== null){
      $user = self::$user;
     if($request->session()->has("user")) $request->session()->put("user", $user);
     else $request->session()->push("user", $user);
     $this->view->share('user', $user);
  }
}
...

Посмотрев, как это делают другие, я увидел что мне необходимо:

  1. Переопределить config/auth.php
  2. Добавить provider регистрацию guard, выполняющего обработку аутентефикации с методами: check, validate, guest, user, id,
  3. Переопределить Auth::provider('custom_provider', function ($app, array $config) {new UserAuthProvider(..)}); имя которого будет использоваться в конфигурации.
  4. Auth::extend('???', function ($app, $name, array $config) {return new Guard(...))

Что я мог упустить и что нужно расширить для использования Auth::extend (4п)?


Ответы (0 шт):