Cookie удаляется после входа в Gmail - PullRequest
4 голосов
/ 22 октября 2019

Я внедряю систему онлайн-бронирования, используя Laravel Framework версии 5.6 и Laravel Socialite для реализации входа в gmail.

У меня есть метод, который проверяет, вошел ли пользователь в систему до резервирования, или выдает reserveData и redirectUrl, заданные uniqid в Redis и cookie для получения после входа в систему:

public function checkAuthentication(Request $request)
{
    $reserveData = json_decode($request->input('reserveData'), true);
    Session::put('reserveData', $reserveData);

    if (!Auth::check()) {
        $reserveID = uniqid();
        Cookie::queue(Cookie::forget('reserveID'));
        Cookie::queue(Cookie::make('reserveID', $reserveID, 1440));

        $stepData = [
            'redirectUrl' => route('reserve', ['productId' => $reserveData['productId']]),
            'reserveData' => $reserveData
        ];

        Redis::set($reserveID, serialize($stepData));

        return redirect()->route('redirectToGmail');
    }

    return redirect()->route('reserve', ['productId' => $reserveData['productId']]);
}

redirectToGmail :

public function redirectToGmail()
{
    return Socialite::driver('google')->redirect();
}

Проблемаесть, uniqid не существует в cookie после возврата из gmail только в первый раз, когда пользователь пытается войти в систему :

public function login()
{
    $user = Socialite::driver('google')->stateless()->user();
    dd(Cookie::get());
}

Вот мой вывод dd(Cookie::get()); после возвращения из gmail:

array:4 [▼
    "XSRF-TOKEN" => "DxiHpLSqB8juOkdLSptORyXs2XGggwWuY4tKJDkz"
    "project_session" => "Gy7p3nhUNGF9D34FmWYxyvewb6juiDNSVLXWTDvS"
    "__cfduid" => null
]

1 Ответ

1 голос
/ 30 октября 2019

URL сайта до и после входа в Gmail одинаков? Если URL изменился, cookie будет сброшен.

...