从付款重定向回来后,为什么Laravel用户已注销?

时间:2019-01-22 05:51:24

标签: laravel

我将Laravel应用程序部署到共享主机(cpanel)。对于付款,用户首先重定向到银行帐户,然后重定向到我的页面。在此过程中,用户将被注销!

为保护路由,我使用身份验证中间件,对于会话驱动程序,我使用默认的会话驱动程序file。此外,框架/会话的许可为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时,我也没有获得任何成功。当用户从银行页面重定向回时,所有会话似乎都已清除。

如何解决该问题?

2 个答案:

答案 0 :(得分:2)

Laravel 7更改

我们的软件包与Laravel 7兼容,但是在默认的Laravel安装中,same_site设置已更改,请确保在以下位置将same_site更改为null config/session.php或回叫将不包含cookie,并且付款完成后您将被注销。因此,在您的config/session.php更新中

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

答案 1 :(得分:0)

您可以参考此示例https://medium.com/justlaravel/how-to-integrate-paypal-payment-gateway-in-laravel-695063599449并实现付款网关。 在回调时,您的身份验证不会使用户登录令牌属性就可以重新登录