axios.get /airlock/csrf-cookie не действует в laravel 7

Я использую авторизацию воздушного шлюза laravel в своем проекте SPA.

Согласно документации https://laravel.com/docs/master/airlock, для входа в систему необходим приведенный ниже код:

axios.get('/airlock/csrf-cookie').then(response => {
   // Login...
});

Однако, когда я прокомментировал код, сценарий входа все еще может получить доступ к контроллеру API.

Это мой код ниже:

// axios.get('/airlock/csrf-cookie').then(response => {
      axios.post('api/login', {
        email: this.email,
        password: this.password
      })
      .then(response => { 
        console.log(response);
      })
      .catch(error => {
         self.errors.push(error.response.data.message)
       });
 // })

Какая польза от axios.get('/airlock/csrf-cookie') тогда?

1 ответ

Это потому, что вы уже попали в домен при загрузке задниц для вашего приложения SPA (HTML/JS/CCS), и в этот момент была инициализирована защита Laravel CSRF.

Представьте, что у вас есть свой API в другом домене, тогда вам необходимо инициализировать защиту CSRF с помощью вызова /airlock/csrf-cookie

Другие вопросы по тегам