1, CURLOPT_POST => 1, CURLOPT_POSTFIELDS => http_build_query([ 'client_id' => $settings['oauth.client_id'], 'client_secret'=> $settings['oauth.client_secret'], 'grant_type' => 'authorization_code', 'code' => $request->get('code'), 'redirect_uri' => route('oauth_callback'), ]), CURLINFO_HEADER_OUT => true, CURLOPT_HTTPHEADER => [ 'Content-Type: application/x-www-form-urlencoded; charset=utf-8', ], ]); $data = json_decode(curl_exec($ch), true); $accessToken = $data['access_token']; curl_setopt_array($ch, [ CURLOPT_URL => $settings['oauth.user_url'], CURLOPT_HTTPHEADER => [ 'Authorization: Bearer ' . $accessToken, ], ]); $data = json_decode(curl_exec($ch), true); $user = User::where('email','=', $data['email'])->first(); Auth::login($user); return redirect($request->session()->get('url.intended', '/')); } }