Laravel 6.x socialite automati c войдите с помощью Google - PullRequest
0 голосов
/ 04 марта 2020

Я успешно вошел в мое приложение Laravel с помощью социальной сети. Также я выхожу из системы, но снова захожу на страницу для входа в систему через Google, она автоматически аутентифицирует пользователя без запроса взаимодействия с пользователем.

Это маршруты:

Route::get('/redirect', 'Auth\LoginController@redirectToProvider');
Route::get('/handle-login', 'Auth\LoginController@handleProviderCallback');

Контроллер функции:

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

public function handleProviderCallback()
{
    try {
        $user = Socialite::driver('google')->user();
    } catch (\Exception $e) {
        return redirect('/login');
    }
    $existingUser = \App\User::where('email', $user->email)->first();
    if($existingUser){
        Auth::login($existingUser);
    } else {
        $newUser = new \App\User;
        $newUser->name = $user->name;
        $newUser->email = $user->email;
        $newUser->googleId = $user->id;
        $newUser->save();              
        Auth::login($newUser);
    }
    return redirect()->to('/home');
}

public function logout() {
    Auth::logout();
    Session::flush();
    return redirect('/');
}

Моя проблема заключается в том, что при выходе из системы пользователь выходит из Laravel, но если я снова получу доступ к маршруту /redirect, пользователь автоматически войдет в систему, и я хочу чтобы избежать этого, но попросите пользователя снова выполнить социальную регистрацию.

ПРИМЕЧАНИЕ. Я вижу, что при входе в систему с помощью Google логин также действителен и на google.com, поэтому я предполагаю, что выход из системы работает на моем домене, но остается действительным на google.com.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...