首页 > 解决方案 > 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是不正确的。但是我尝试了很多东西都没有成功。

编辑 :

返回网址为:https ://school-back-v2.herokuapp.com/

前面的网址是:https ://react-protected-routes.herokuapp.com/

标签: laravelherokularavel-sanctum

解决方案


如果您的网站放置在 Heroku 子域中,Heroku 会被浏览器列入使用 cookie 的黑名单。您可以使用 Heroku,但必须注册您自己的域并使用它,这样才能解决这个问题。其他变体 - 使用令牌而不是 cookie。


推荐阅读