Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (4)

Лучшие ответы пользователя

Все ответы (4)
  • Как переопределить метод handle в посреднике RequirePassword?

    tol64
    @tol64 Автор вопроса
    Вроде бы удалось найти свой вариант (поправьте, если ошибаюсь).

    Последовательность действий

    Создаём одноимённого посредника (можно другое имя задать)

    php artisan make:middleware RequirePassword

    Добавляем в файле списков провайдеров (app\Http\Kernel.php)

    …
        protected $routeMiddleware = [
            …
            'password.confirm' => \App\Http\Middleware\RequirePassword::class,
            …
        ];
    …


    Наследуемся от класса штатного RequirePassword и добавляем свой метод, который хотим переопределить

    <?php
    
    namespace App\Http\Middleware;
    
    use Closure;
    use Illuminate\Auth\Middleware\RequirePassword as RequirePasswords;
    
    class RequirePassword extends RequirePasswords
    {
        public function handle($request, Closure $next, $redirectToRoute = null)
        {
            if ($this->shouldConfirmPassword($request)) {
                if ($request->expectsJson()) {
                    return $this->responseFactory->json([
                        'message' => 'Password confirmation required.',
                    ], 423);
                }
                return $this->responseFactory->redirectGuest(
                    $this->urlGenerator->route($redirectToRoute ?? 'password.confirm', app()->getLocale())
                );
            }
            return $next($request);
        }
    }
    Ответ написан
    5 комментариев

Лучшие вопросы пользователя

Все вопросы (8)