Для установки куки XSRF в Laravel Sanctum и Nuxt.js вам потребуется выполнить несколько шагов. Вот пошаговая инструкция:
Шаг 1: Установка Laravel Sanctum
Сначала убедитесь, что вы правильно установили Laravel Sanctum в вашем Laravel проекте. Вы можете установить его, выполнив следующую команду в командной строке:
composer require laravel/sanctum
Затем выполните миграцию, чтобы добавить таблицу для хранения токенов Sanctum:
php artisan migrate
Шаг 2: Конфигурация Laravel Sanctum
Откройте файл config/sanctum.php
и установите значение stateful
в true
. Это гарантирует, что Sanctum будет устанавливать куки в ответ на успешную аутентификацию.
'stateful' => true,
Также удостоверьтесь, что ваше приложение находится в списке доменов разрешенных (_allowed domains_). Определите список разрешенных доменов, добавив их в свойство domain
в этом же файле:
'domain' => [ 'http://localhost:3000', // Замените на свой домен Nuxt.js 'http://example.com' // Добавьте свои домены ],
Шаг 3: Подключение к API
Теперь перейдите к вашему проекту Nuxt.js. Установите зависимости, выполнив следующую команду в командной строке:
npm install @nuxtjs/axios @nuxtjs/auth-next
Затем добавьте эти пакеты в ваш файл nuxt.config.js
:
modules: [ '@nuxtjs/axios', '@nuxtjs/auth-next' ],
Шаг 4: Конфигурация Nuxt.js
Откройте файл nuxt.config.js
и настройте модули axios и auth-next следующим образом:
// nuxt.config.js export default { // ... axios: { baseURL: 'http://localhost:8000' // Замените на URL вашего Laravel проекта }, auth: { strategies: { 'laravelSanctum': { provider: 'laravel/sanctum', url: 'http://localhost:8000', // Замените на URL вашего Laravel проекта cookie: { prefix: 'name_of_your_cookie', options: { secure: process.env.NODE_ENV === 'production' // Дополнительные параметры cookie } } }, }, redirect: { login: '/login', logout: '/', home: '/dashboard', } }, // ... }
Шаг 5: Работа с аутентификацией
Теперь вы можете использовать методы аутентификации в вашем Nuxt.js проекте. Например, для входа пользователя вы можете использовать следующий код:
// login.vue export default { data() { return { form: { email: '', password: '' } } }, methods: { async login() { await this.$auth.loginWith('laravelSanctum', { data: { email: this.form.email, password: this.form.password } }) } } }
Это была подробная инструкция по установке и использованию куки XSRF с Laravel Sanctum и Nuxt.js. Убедитесь, что вы правильно настроили каждый шаг, и проверьте документацию Laravel Sanctum и Nuxt.js для дополнительной информации.