public function getGoogleAuth(Request $request) { $client = new Google_Client(); $client->setScopes(SCOPES); $client->setAuthConfigFile(CLIENT_SECRET_PATH); $client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/google_calendar_callback'); $authCode = $request->input('code'); $accessToken = $client->authenticate($authCode); $client->setAccessToken($accessToken); $request->session()->put('access_token', $client->getAccessToken()); $authObj = json_decode($accessToken); if (isset($authObj->refresh_token)) { $session = Session::firstOrNew($request->session()->getId()); $session->refresh_token = $authObj->refresh_token; $session->save(); } // Refresh the token if it's expired. if ($client->isAccessTokenExpired()) { $client->refreshToken(Session::find($request->session()->getId())); } return redirect()->route('calendar_back', [$request->session()->get('dialog'), $request->session()->get('seance')], 302); }