【发布时间】:2021-11-13 01:08:02
【问题描述】:
我已经使用身份验证系统“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 不正确。但是我尝试了很多东西都没有成功。
编辑:
【问题讨论】:
-
但是您的网站不是托管在 herokyapp.com 上,而是托管在 herokyapp 的子域上。如果 Heroku 上托管的任何应用都可以访问您用户的 cookie,那就太糟糕了
-
我已经添加了背面和正面的网址。因此,在您看来,这些 url 中的配置应该是什么。环境?
-
后端的 cookie 应该在域
school-back-v2.herokuapp.com下。Secure应为 true,SameSite 应设置为None
标签: laravel heroku laravel-sanctum