Laravel 7 странный выход из системы - PullRequest
0 голосов
/ 16 марта 2020

Я только что закончил Laravel 7 приложение. После завершения платежей, у меня сейчас странные проблемы. Я отправляю LOGGED IN USER на платежный шлюз, пользователь платит, и шлюз отправляет пользователя обратно на сайт в виде запроса POST. Но ответное действие сайта никогда не вызывается. Поскольку он находится под auth middleware, пользователь не знает, как LOGGED OUT и отправляется на экран входа в систему.

Определение маршрута выглядит следующим образом:

<?php

Route::middleware('auth')->group(function () {

    // This sends the user to gateway
    Route::post('subscription', 'SubscriptionController@renew')->name('subscription.renew');

    // Gateway sends the user back here
    Route::post('subscription/process', 'SubscriptionController@process')->name('subscription.process');
});

Проверка вкладки сети на предмет прыжков выглядит следующим образом:

POST http://localhost:8000/subscription -> 302 << gateway >>
<< gateway >> -> POST http://localhost:8000/subscription/process -> 302 http://localhost:8000/login

В ответе, когда приложение отправляет на http://localhost: 8000 / login , заголовки имеют laravel_session готовьте ie по мере необходимости.

Но действие http://localhost: 8000 / подписка / процесс никогда не вызывается, и пользователь выходит из системы. Никогда не было таких проблем до Laravel 6 с тем же платежным шлюзом.

Более того, я также добавил ниже URL-адрес к VerifyCsrfToken промежуточному программному обеспечению, так как сначала было 419.

<?php

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;

class VerifyCsrfToken extends Middleware
{
    protected $except = [
        '/subscription/process',
    ];
}

Кто-нибудь может пролить свет на то, что может быть причиной?

1 Ответ

0 голосов
/ 16 марта 2020

Узнал! Это произошло из-за SameSite=Lax, установленного по умолчанию в Laravel 7 сеанс готовки ie, как в https://github.com/laravel/laravel/commit/2913a55d87461fabe94907c5728d7a9451bcae80 commit.

...