首页 > 解决方案 > 为什么 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

解决方案


Laravel 7 的变化

我们的包与 Laravel 7 兼容,但在默认 Laravel 安装中更改了 same_site 设置,请确保您更改same_sitenullin config/session.php或回调将不包含 cookie,并且您将在付款完成后注销。所以在你的config/session.php更新里面

return [
  ...
  ...
  'same_site' => null,
  ...
  ...
];

推荐阅读