使 laravel API 与灯丝管理面板、Arduino esp32 和 React js SPA 应用程序相互协作

问题描述 投票:0回答:1

我正在尝试使 Laravel API 与灯丝管理面板、Arduino esp32 和 React js SPA 应用程序相互协作,但是当我访问

http://192.168.0.105:8000/admin/login
或我的前端
http://localhost:3000/login
并尝试登录时,我面临 419 过期和 csrf 令牌不匹配。 我为 Laravel 应用程序做
php artisan serve --host 192.168.0.105 --port=8000
对于 React js,我在 localhost:3000 上启动应用程序 arduino 有一个静态 IP
http://192.168.0.30

我也使用 Breeze 进行身份验证。

我尝试了 SANCTUM_STATEFUL_DOMAINS 的各种配置,但每次尝试都失败了。

我猜问题出在我的环境配置中。

APP_URL=http://192.168.0.105:8000
FRONTEND_URL=http://localhost:3000
SANCTUM_STATEFUL_DOMAINS=http://localhost:3000
SESSION_DOMAIN=localhost

配置/圣所

'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf(
        '%s%s%s',
        'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1',
        env('APP_URL') ? ','.parse_url(env('APP_URL'), PHP_URL_HOST) : '',
        env('FRONTEND_URL') ? ','.parse_url(env('FRONTEND_URL'), PHP_URL_HOST) : ''
    ))),

配置/cors

    'allowed_origins' => [env('FRONTEND_URL', 'http://localhost:3000')],

如果我将 APP_URL 更改为 localhost:8000 并像 php artisanserve 一样启动,我的 laravel api 和 React 应用程序可以正常通信,但 arduino 无法向我的 192.168.0.105:8000 发送请求

我该如何解决这个问题。预先感谢

php reactjs laravel esp32
1个回答
0
投票

所以我设法解决了它。 我的环境配置现在看起来像

APP_URL=https://192.168.0.105:8000
FRONTEND_URL=https://192.168.0.105:3000
SANCTUM_STATEFUL_DOMAINS=192.168.0.105:8000,192.168.0.105,192.168.0.105:3000
SESSION_DOMAIN=.192.168.0.105

我在会话域中添加了一个点

© www.soinside.com 2019 - 2024. All rights reserved.