Auth After Middleware - PullRequest
       9

Auth After Middleware

0 голосов
/ 14 марта 2019

Я хочу аутентифицировать пользователя после запроса с моим собственным промежуточным программным обеспечением:

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Auth\Middleware\Authenticate;

class AuthenticateAfter extends Authenticate
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string[]  ...$guards
     * @return mixed
     *
     * @throws \Illuminate\Auth\AuthenticationException
     */
    public function handle($request, Closure $next, ...$guards)
    {
        $response = $next($request);

        $this->authenticate($request, $guards);

        return $response;
    }
}

Я расширяю Illuminate\Auth\Middleware\Authenticate и изменяю метод handle для запуска после промежуточного программного обеспечения.

Затем он объявляется в моем ядре и на правильном маршруте.

Но меня всегда пинают обратно на страницу, на которой я был ранее после входа в систему.

Я хочу контролировать страницу, на которую идупоэтому до того, как промежуточное программное обеспечение запускается, я делаю:

$request->session()->put('url.intended', 'my-test-url');

Но он не перенаправляет на этот маршрут.

Как я могу заставить его перенаправить на пользовательский маршрут?

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

Попробуйте,

public function handle($request, Closure $next, ...$guards)
{
    $response = $next($request);

    $this->authenticate($request, $guards);

    return redirect('/your_page_path');    
}

Просто для справки, вот что я использую для аутентификации пользователя:

public function handle($request, Closure $next)
{
    if (auth()->user() && auth()->user()->type != 'admin')
    {
        return redirect('/unauthorized');
    }
    return $next($request);
}
0 голосов
/ 14 марта 2019

попробуйте с помощью: return redirect ('view') или return redirect () -> to ('/ route')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...