лучшее понимание защиты промежуточного ПО в laravel - PullRequest
0 голосов
/ 03 октября 2018

Я написал очень простое промежуточное программное обеспечение, например:

class CheckToken
{

    private $token='xxx';
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {


        if (! $request->tokenz == $this->token) {
            return response('Unauthorized.', 401);
        }

        return $next($request);
    }
}

Затем я регистрирую его через kernel.php, например:

protected $routeMiddleware = [
       .....
        'CheckToken' => \App\Http\Middleware\CheckToken::class,

    ];

, тогда у меня есть очень простая функция вконтроллер, охраняемый этим контроллером:

public function __construct()
    {
        $this->middleware('CheckToken');
    }


    public function push()
    {
        return view('home');
    }

Теперь запускается то, что мне не понятно:

  • как я могу "защитить" свою страницу, используя этот простой метод?

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

<meta name="tokenz" content="xxx">

Я положилэто даже в теле, но безрезультатно.

что я неправильно понял?

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

извините, я не могу создать комментарий.но просто хочу помочь.

неужели $request прошло tokenz?Вы можете использовать ?tokenz=blablabla или изменить свой метод, чтобы получить tokenz

0 голосов
/ 03 октября 2018

Я считаю, что вам нужно добавить вызов промежуточного программного обеспечения к фактическому маршруту:

use App\Http\Middleware\CheckAge;

Route::get('admin/profile', function () {
    //
})->middleware(CheckAge::class);

Это было извлечено из документации Laravel 5.7: Промежуточное программное обеспечение - Назначение промежуточного программного обеспечения для маршрутов

...