2016-06-25 7 views
0

В соответствии с LaravelWebsiteВ Laravel Какие промежуточного выстреливает первый CSRF или AUTH

Laravel будет первым аутентификации пользователя, который сгореть

Auth промежуточное программное обеспечение, а затем огонь CSRF промежуточное программное обеспечение.

Но что делать, если страница входа в систему - это страница для рыбалки, и нет более естественной, чтобы сначала проверить, является ли запрос с нашего собственного сайта, а затем проверить, является ли аутентификация пользователя.

Может кто-то бросить некоторый свет на то же самое.

Благодаря

Любая помощь будет оценена

ответ

1

С Laravel Request Lifecycle page

Сначала запросы передаются в ПО промежуточного слоя, которые должны быть обработаны каждым запросом, определенным в app/Http/kernel.php. CSRF промежуточное ПО применяется в этой точке.

Ядро HTTP также определяет список промежуточного программного обеспечения HTTP, которое все запросы должны проходить до того, как приложение будет обработано. Эти связующие программы обрабатывают чтение и запись HTTP-сеанса, определяют, находится ли приложение в режиме обслуживания, проверяя токен CSRF и т. Д.

Затем запрос будет передан маршрутизатору. Затем маршрутизатор будет налагать промежуточное программное обеспечение маршрута. Это означает, что auth также применяется в этой точке.

После того, как приложение было бутстрапированная и все поставщики услуг были зарегистрированы, то запрос будет передан от маршрутизатора на диспетчеризация. Маршрутизатор отправит запрос на маршрут или контроллер , а также выполнит любое промежуточное программное обеспечение маршрута.

Надеюсь, у вас есть ответ.

+0

Так, согласно тому, что вы также говорят, что CSRF промежуточного слоя уволят первым?, Напротив, этот документ https://laravel.com/docs/master/routing#csrf-protection говорит, что первая аутентификация произойдет, а токен CSRF будет проверен? , Я что-то упускаю ? – Vikram

+0

«Этот токен используется для проверки того, что аутентифицированный пользователь является тем, кто действительно делает запросы к приложению». Это то, что ты имеешь в виду? То, что он говорит здесь посредством аутентификации, не является чем-то вроде входа пользователя в систему. Цель токена CSRF (кросс-сайта) заключается в том, чтобы избежать ** несанкционированных ** сторон доступа к вашему приложению. То есть, только компонент, находящийся в вашем приложении, может отправлять действительные запросы в ваше приложение. Другие отклоняются. Это мера безопасности. Кстати, запрос жизненного цикла - это тот, на который вы должны ссылаться, чтобы понять, что происходит. –

+0

все еще я не понимаю, что означает «аутентифицированный пользователь» в этой документации. Сегодня интервьюер обсуждал, что Laravel FIrst Authenticate the User и CSRF проверяется. Я думаю, он прочитал ссылку, которую я представил в своем вопросе. Так что же означает, что ПОЛЬЗОВАТЕЛЬ ПОЛЬЗОВАТЕЛЯ ОБЕСПЕЧИЛСЯ? – Vikram

0

В соответствии с документами laravel. Вначале применяется промежуточное программное обеспечение для сети, после чего выполняется передача запроса другим посредникам типа auth и т. Д., Если вы не измените его.

Ссылка:

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

Помните, что группа промежуточного программного обеспечения Интернета автоматически применяется к файлу route.php по умолчанию с помощью RouteServiceProvider.

Здесь полотно промежуточного

/** 
* The application's route middleware groups. 
* 
* @var array 
*/ 
protected $middlewareGroups = [ 
    'web' => [ 
     \App\Http\Middleware\EncryptCookies::class, 
     \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 
     \Illuminate\Session\Middleware\StartSession::class, 
     \Illuminate\View\Middleware\ShareErrorsFromSession::class, 
     \App\Http\Middleware\VerifyCsrfToken::class, 
    ], 

    'api' => [ 
     'throttle:60,1', 
     'auth:api', 
    ], 
];