Необходимо переопределить контроллер авторизации на Ларавель. Подскажите, правильный ли 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);
}
}
...
Посмотрев, как это делают другие, я увидел что мне необходимо:
- Переопределить config/auth.php
- Добавить provider регистрацию guard, выполняющего обработку аутентефикации с методами: check, validate, guest, user, id,
- Переопределить Auth::provider('custom_provider', function ($app, array $config) {new UserAuthProvider(..)}); имя которого будет использоваться в конфигурации.
- Auth::extend('???', function ($app, $name, array $config) {return new Guard(...))
Что я мог упустить и что нужно расширить для использования Auth::extend (4п)?