Я использую пакет Socialite в Laravel для аутентификации. Я так долго загружал приложение на свой хостинг, и аутентификация всегда была успешной. но в последнее время он сталкивается с некоторой ошибкой cURL, в основном говоря: GuzzleHttp \ Exception \ ConnectException cURL error 6: getaddrinfo() thread failed to start (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)
. Я понятия не имею, почему это происходит. Я прочитал несколько статей, и ничто не может решить мою проблему. У кого-нибудь есть идеи, как решить эту проблему? Спасибо.
Вот мой код
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Laravel\Socialite\Facades\Socialite;
class AuthController extends Controller
{
public function redirectToProvider($provider)
{
return Socialite::driver($provider)->redirect();
}
/**
* Obtain the user information from provider. Check if the user already exists in our
* database by looking up their provider_id in the database.
* If the user exists, log them in. Otherwise, create a new user then log them in. After that
* redirect them to the authenticated users homepage.
*
* @return Response
*/
public function handleProviderCallback($provider)
{
$user = Socialite::driver($provider)->user();
$authUser = $this->findOrCreateUser($user, $provider);
Auth::login($authUser, true);
return redirect('/');
}
/**
* If a user has registered before using social auth, return the user
* else, create a new user object.
* @param $user Socialite user object
* @param $provider Social auth provider
* @return User
*/
public function findOrCreateUser($user, $provider)
{
$authUser = User::where('provider_id', $user->id)->first();
if ($authUser) {
return $authUser;
}
else{
$data = User::create([
'name' => $user->name,
'email' => !empty($user->email)? $user->email : '' ,
'provider' => $provider,
'provider_id' => $user->id
]);
return $data;
}
}
}