Как настроить laravel/sanctum на несколько доменов
Файл конфигурации .env:
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:pidZnQTgbIdywrKyRVKXbckM5ZDup49irriT9nzMasE=
APP_DEBUG=true
APP_URL=http://vacation.loc
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=vacation
DB_USERNAME=логин
DB_PASSWORD=пароль
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
cors.php:
return [
'paths' => ['api/*'],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => false,
];
Всё работает, если запускаем сервер командой php artisan serve. Но если я использую свой локальный домен, то получаю, что пользователь не авторизован.
Ответы (1 шт):
Автор решения: doox911
→ Ссылка
Для того, чтобы запросы работали на нужном домене, необходимо в файл конфигурации config/sanctum.php в параметр stateful прописать необходимый домен.
Пример:
<?php
return [
'stateful' => explode(', ', env('SANCTUM_STATEFUL_DOMAINS', 'localhost, 127.0.0.1, my-domain1.loc', 'my-domain2.loc')),
'expiration' => null,
'middleware' => [
'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class,
],
];
После внесения изменений необходимо выполнить команду(подгрузить новые настройки) php artisan config:clear.
Подробнее тут.