Как передать CSRF токен из Laravel в приложение на Vue.js с помомщью httponly cookie?

Как можно передать атрибут httponly CSRF токена из Laravel в Vue.js для безопасности? Я знаю, что Vue.js запрашивает его из HTML. Я слышал о проблеме, но не уверен, как ее обойти.
  • 16 июня 2024 г. 6:41
Ответы на вопрос 2
Для передачи CSRF токена из Laravel в приложение на Vue.js с помощью httponly cookie, вам следует установить CSRF токен в cookie на стороне сервера Laravel и затем отправлять его с каждым запросом с помощью axios или другой HTTP библиотеки на стороне клиента Vue.js.

Для этого вы можете использовать следующий код на стороне Laravel:

```php
// Установка CSRF токена в cookie
$response = new Response('CSRF token');
$response->withCookie(cookie('XSRF-TOKEN', csrf_token(), 60));
return $response;
```

На стороне Vue.js вам нужно будет получить CSRF токен из cookie и установить его как заголовок в каждом запросе Axios. Вы можете сделать это следующим образом:

```javascript
import axios from 'axios';

const csrfToken = document.cookie.replace(/(?:(?:^|.*;\s*)XSRF-TOKEN\s*=\s*([^;]*).*$)|^.*$/, "$1");

axios.defaults.headers.common['X-XSRF-TOKEN'] = csrfToken;

// Отправка запроса с CSRF токеном
axios.post('/api/some-endpoint', data)
    .then(response => {
        console.log(response);
    })
    .catch(error => {
        console.error(error);
    });
```

Таким образом, вы сможете передать CSRF токен из Laravel в приложение на Vue.js с помощью httponly cookie и обеспечить безопасность вашего приложения.
Слышал если только не обрабатывать (но услышал звон, но не знаю где он)


Вот именно. Флаг httponly закрывает доступ к куке на стороне клиента. Браузер ее не увидит.
Похожие вопросы