Laravel через composer, поставил и настроил пакеты Sanctum и Fortify. Далее хочу в POSTMAN'е сделать апи запрос на регистрацию пользователя и авторизацию. Для этого сначала посылаю GET запрос на http://127.0.0.1:8000/sanctum/csrf-cookie а после POST запрос на http://127.0.0.1:8000/register, но у меня вылазит ошибка:"message": "CSRF token mismatch.",
"exception": "Symfony\\Component\\HttpKernel\\Exception\\HttpException". Перепробовал все возможные варианты, и устанавливал X-XSRF-TOKEN такой как в куке первого запроса, и куки передавал но всё равно не как не могу от неё избавиться. Подскажите что я делаю не так?
Попробуй /api
Обычно csrf юзается для обычных пост запросов
Я разрабатываю backend для SPA приложения (написанного на реакте), потому хотелось бы что бы авторизация в апи была через cookie
Если добавить /api то будет 404 not found, не то
То делай на spa, а не postman. Куки и сессии не сохраняются
Зачем куки? Вроде не нулевые уже. Есть заголовки. Туда Bearer Token
я в постмане поставил pre request на коллекцию ендпоинтов: pm.sendRequest({ url: pm.environment.get('domain') + '/api/csrf-cookie', method: 'GET' }, function (error, response, { cookies }) { if (!error) { pm.request.headers.add({key: 'X-XSRF-TOKEN', value: cookies.get('XSRF-TOKEN') }) pm.request.headers.add({key: 'ACCEPT', value: 'application/json' }) pm.request.headers.add({key: 'REFERER', value: pm.environment.get('referer') }) } }) domain, и referer заданы в енве
Спасибо! Похоже это то что мне нужно
Токены доступа для SPA рекомендуют хранить в HTTP Only. Это типа best practice
Вот себе бэк для демки на реакте делал. Посмотрел на sanctum и сделал на laravel passport Токен правда не в куки хранил а просто в заголовках передавал, но если надо именно в куки, то там по моему делов минут на 10.
а почему просто bearer токен не использовать?
Можно, но вопроса с CSRF токеном это не решит
Обсуждают сегодня