При работе над SPA, использующими Laravel Sanctum для аутентификации, я заметил повторяющийся процесс настройки:
- Вызов /sanctum/csrf-cookie перед каждым защищенным запросом
- Прикрепление X-XSRF-TOKEN и withCredentials вручную
- Обработка _method переопределения для запросов PUT/PATCH
- Управление несколькими параметрами запроса в настройках fetch/axios
Чтобы упростить этот рабочий процесс, я создал небольшой пакет npm под названием lara-fetch (~3,5 КБ), который автоматически обрабатывает получение токенов CSRF, управление учетными данными и метод HTTP спуфинг — все с минимальной конфигурацией и поддержкой TypeScript.
Вот основной пример использования
Код: Выделить всё
import { laraFetch } from "lara-fetch";
const res = await laraFetch.post("/login", {
body: JSON.stringify({ email, password }),
});
- -> http://localhost:8000
Код: Выделить всё
baseUrl - -> /sanctum/csrf-cookie
Код: Выделить всё
csrf path
Код: Выделить всё
laraFetch.configure({
baseUrl: "https://myapp.com",
debug: true // disable in production,
... // few more
})
- извлечение и внедрение токенов CSRF
- управление учетными данными и заголовками
- вывод методов для тел, закодированных в FormData/URL
- Вспомогательные методы (.get, .post, .put, .patch, .del)
Я обдумываю улучшения. Однако мне бы хотелось услышать мнение сообщества:
- Есть ли крайние случаи или проблемы безопасности, о которых мне следует знать (например, пользовательские настройки промежуточного программного обеспечения Sanctum)?
- Какие дополнительные функции могут сделать его более надежным для производственных SPA?
- Существует ли лучший архитектурный подход для достижения той же цели, не полагаясь на библиотеку-оболочку?
Будем признательны за любые отзывы и предложения!
Подробнее здесь: https://stackoverflow.com/questions/798 ... age-like-l
Мобильная версия