- Версия Socialite: ^ 4.3
- Laravel Версия: 6
- PHP Версия: 7.3.8
- Драйвер базы данных и версия: MySQL
Описание:
Я использую несколько аутентификационных охранников. Для этого у меня есть несколько обратных вызовов для каждого охранника. Но redirectUrl, похоже, не обновляет redirectUrl и продолжает выдавать несоответствие redirect_uri на Facebook и Google.
Шаги для воспроизведения:
- чистая установка laravel
- настроить защиту клиента и работника (не используя для этого таблицу пользователей)
- настроить маршруты следующим образом
//social account worker sign up/sign in related routes
Route::get('worker/{provider}', 'Auth\AuthController@redirectToProvider')->middleware('web');
Route::get('worker/{provider}/callback', 'Auth\AuthController@handleProviderCallback')->name('worker.provider')->middleware('web');
для клиента
Route::get('customer/{provider}', 'Auth\AuthController@redirectToProvider')->middleware('web');
Route::get('customer/{provider}/callback', 'Auth\AuthController@handleProviderCallback')->name('customer.provider')->middleware('web');
-установка провайдера id, ключ и URL-адрес клиента по умолчанию: FACEBOOK_URL=http://localhost:8000/api/customer/facebook/callback
- добавить конфиги провайдеров в config / services - в методе redirectToProvider заказчика
$redirectUrl = route('customer.provider', ['provider' => $provider]);
return Socialite::driver($provider)
->redirectUrl($redirectUrl)
->redirect();
На данный момент все работает нормально Теперь если я запускаю метод redirectToProvider для работника, который выглядит следующим образом:
$redirectUrl = route('worker.provider',['provider' => $provider]);
return Socialite::driver($provider)->redirectUrl($redirectUrl)->redirect();
Он выдает "Client error: `POST https://graph.facebook.com/v3.3/oauth/access_token` resulted in a `400 Bad Request` response:\n{\"error\":{\"message\":\"Error validating verification code. Please make sure your redirect_uri is identical to the one you (truncated...)\n"
для Facebook и почти такую же ошибку для Google. Я попытался переопределить файл env во время выполнения и отправки redirectUrl с помощью "с"