laravel - Sanctum laravel 在本地运行良好,而不是在 heroku
问题描述
我用身份验证系统“sanctum”开发了一个前端(react)和一个后端(php laravel)。在本地主机上一切正常。但我无法让它在heroku的生产中工作。
在本地环境中,我的 .env 是(提取):
SESSION_DRIVER=cookie
SANCTUM_STATEFUL_DOMAINS=localhost:3000,127.0.0.1:3000,localhost:8000,127.0.0.1:8000
SESSION_DOMAIN=localhost
如果我理解得很好,cookies 的正面和背面必须在同一个域上。由于我的背面和正面都托管在 heroku (herokuapp.com) 中,因此我有这些 .env :
但是使用这种配置,我总是有一个响应419 CSRF token mismatch。
当然我的conf是不正确的。但是我尝试了很多东西都没有成功。
编辑 :
解决方案
如果您的网站放置在 Heroku 子域中,Heroku 会被浏览器列入使用 cookie 的黑名单。您可以使用 Heroku,但必须注册您自己的域并使用它,这样才能解决这个问题。其他变体 - 使用令牌而不是 cookie。
推荐阅读
- reactjs - 无法使用 laravel 控制器保存反应原生 stringfy 数据
- java - StackOverflowError:执行获取请求时为空
- windows - 为什么不能在本机反应中创建新应用程序
- c++ - 如何导入使用自制软件安装的 GMP?
- ios - 三个实体分层,但在第三个中第一个不被考虑
- php - 如何使用 CURL_SETOPT 通过另一个 IP 地址路由 CURL?
- c++ - 复制省略并在返回值中移动语义
- javascript - 我可以使用 JS 获取客户端 DNS IP 地址吗?
- html - 如何使 Web 输入字段在某个窗口宽度后开始缩小?
- android - JaCoCo 如何/何时创建 .exec 文件?