Я хочу использовать пакет Socialite, но получаю сообщение об ошибке!
коды контроллеров:
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\User;
use Laravel\Socialite\Facades\Socialite;
class GoogleAuthController extends Controller
{
public function redirect()
{
return Socialite::driver('google')->redirect();
}
public function callback()
{
// when i dd() here i see in the answer in the browser.
$googleUser = Socialite::driver('google')->user();
// but dd in here isn't working!
$user = User::where('email', $googleUser->email)->first;
if ($user) {
auth()->loginUsingId($user->id);
} else {
$newUser = User::create([
'name' => $googleUser->name,
'email' => $googleUser->email,
'password' => bcrypt(\Str::random(16)),
]);
auth()->loginUsingId($newUser->id);
}
return $this->redirect('/');
}
}
в веб.php:
Route::get('auth/google', 'Auth\GoogleAuthController@redirect')->name('auth.google');
Route::get('auth/google/callback', 'Auth\GoogleAuthController@callback');
ларавель версия: 6.20.26
версия php: 7.2.5
пожалуйста, помогите мне. тнк
================================================== ==============
Я пробую это (https://stackoverflow.com/a/37849202/20355717):
Socialite::driver('google')->stateless()->user()
но у меня не сработало и выдало ошибку! :
GuzzleHttp\Exception\RequestException
cURL error 77: error setting certificate verify locations: CAfile: /path/to
/downloaded/cacert.pem CApath: none (see https://curl.haxx.se/libcurl
/c/libcurl-errors.html) for https://www.googleapis.com/oauth2/v4/token
http://localhost:8000/auth/google/callback?authuser=0&code=4%2F0AfgeXvucuWTlboWqaMwf2bkBe0AHjbPEJd-
2e7cQdlSN345_3imguhVT_1PQ8fa3ISoHSA&prompt=consent&
scope=email%20profile%20openid%20https%3A%2F
%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile%20https%3A%2F
%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&
state=axIlfjFkns6vWNJIX2uJMuMKNiYFfy7cKiE8Xr8W
Вам нужно указать PHP/curl, где хранятся сертификаты CA, см. Флаг curl CURLOPT_CAPATH
.
привет @DanielW. Извините, может я не правильно написал. Эта ошибка является первой ошибкой. Пожалуйста, дайте мне больше указаний, где я должен ввести эту команду? CURLOPT_CAPATH
?
Введите его в google и изучите, также проверьте openssl.capath
Лучше всего правильно установить openssl.*
в php.ini
1- изменить :
Socialite::driver('google')->user()
в:
Socialite::driver('google')->stateless()->user()
2- скачайте cacert.pem и добавьте этот код в файл php.ini.
curl.cainfo = "D:\wamp64\bin\php\php7.4.26\cacert.pem
вот так https://stackoverflow.com/a/40861755/20355717
3- изменить
return $this->redirect('/');
в контроллере для
return view('welcome'); //or an any other view.
4- конец! надеюсь, полезно для вас!
"выдает другую ошибку" - какая первая ошибка?