laravel - 为什么 Laravel 用户在从付款重定向回来后退出?
问题描述
我将我的 Laravel 应用程序部署到共享主机(cpanel)。对于支付,用户首先重定向到银行帐户,然后重定向到我的页面。在此过程中,用户将被注销!
为了保护我的路由,我使用 auth 中间件和会话驱动程序,我使用默认会话驱动程序,即文件。此外,框架/会话的权限是 777。
这是重定向到银行页面的代码:
$go = "https://thebank/example";
redirect()->to($go)->send();
付款成功后,银行会重定向到我指定的用于验证付款的路线。
Route::get('/payment/callBack' , 'PaymentController@VerifyData')->middleware('auth');
该路由使用 auth 中间件但是大多数时候用户没有登录并自动重定向到登录页面。我注意到如果我不使用 auth 中间件,并且如果用户刷新页面,用户会自动登录。这不是 laravel 通常发生的事情。我还尝试了会话的 cookie 驱动程序,但它没有工作并导致更多问题。
在默认的 PHP $_SESSION 中存储 user_id 和 cart_id 时,我也没有获得任何成功。当用户从银行页面重定向回来时,所有 SESSIONS 似乎都被清除了。
我该如何解决这个问题?
解决方案
Laravel 7 的变化
我们的包与 Laravel 7 兼容,但在默认 Laravel 安装中更改了 same_site 设置,请确保您更改same_site
为null
in
config/session.php
或回调将不包含 cookie,并且您将在付款完成后注销。所以在你的config/session.php
更新里面
return [
...
...
'same_site' => null,
...
...
];
推荐阅读
- python - 'QDialog' 对象不可调用
- docker - 使用没有凭据的 Spring Boot 插件发布 Docker 图像
- sql - sql 中对本机函数“DATEDIFF”的调用中的参数计数不正确
- math - 为什么方程 x^7-1=0 的根的二次方之和为 0?
- sql - 基于函数的空间索引的函数:如果 X 不为空且 Y 不为空(不能包含空格)
- docker - 无法加载缓存键:拉取访问被拒绝 powershell
- javascript - 我正在尝试创建一个 discord.js 命令,该命令创建一个名为“MUTED”的角色并覆盖所有频道权限以将“发送消息”设置为 false
- php - 在 Wocomerce Rest Api 中打印元数据
- c - 返回前后指针值不同
- datetime - 如何在 Moment.js 中将 UTC 日期转换为本地日期?