为了测试我的应用程序。我已经使 PHP 可从防火墙访问,并且它有效。该应用程序与我本地计算机上的任何浏览器都能很好地配合。 现在的问题是,我无法使用我的 Android 设备网络浏览器登录。该应用程序在Android上显示得很好,但我无法登录,我总是
419 | PAGE EXPIRED
,但调试栏中有一个例外:来自文件CRSF token mismatch. Illimunate\Session\TokenMismatchException
行vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php
的
85
我尝试了很多想法来自这个给定的解决方案但没有任何效果。 我已经尝试过Laravel CSRF 令牌未找到
所有这些解决方案都适用于使用前端的应用程序。我的应用程序直接通过刀片模板以非常简单的 HTML/CSS 设置提供服务。
我尝试通过在'secure' => env('SESSION_SECURE_COOKIE', false),
中设置
config/session.php
来解决CSRF令牌在laravel中不起作用,但什么也没发生。
Laravel 将其所有会话信息(用户、令牌、闪存等)存储在名为
appname_session
的单个安全加密 cookie 中(请参阅 cookie
中的 config/session.php
)。该 cookie 仅适用于注册为 SESSION_DOMAIN
的主机。这就是为什么您无法使用与 SESSION_DOMAIN
不同的其他 URL 登录。
当您处于
development
环境中时,您必须在 .env
文件中注释该变量,以便使您的 appname_session
cookie 可用于您的应用程序在开发模式下使用的其他主机名。
对于那些想要在
Postman
环境中使用 production
并出现同样问题的人,这里是我为前端开发人员找到的一个很好的教程,因为不建议为 SESSION_DOMAIN
删除 production
。 访问此链接,看看他们是如何处理的。
我希望这能避免人们像我一样浪费时间。