Ошибка GET запроса при отправке Fetch API к Laravel Socialite

Есть проект на Laravel, где стоит библиотека Socialite Сделал первичную настройку

**services.php**

'google' => [
    'client_id' => env('GOOGLE_CLIENT_ID'),
    'client_secret' => env('GOOGLE_CLIENT_SECRET'),
    'redirect' => 'http://localhost:63343/api/auth/google/callback'
],

**.env**

GOOGLE_CLIENT_ID=...
GOOGLE_CLIENT_SECRET=...

Также есть контроллер

**SocialController.php**

public function googleRedirect(){
    return Socialite::driver('google')->stateless()->redirect();
}

public function loginWithGoogle(){
    try{
        $user = Socialite::driver('google')->stateless()->user();
        $isUser = User::where('google_id',$user->id)->first();
        if($isUser){
            Auth::login($isUser);
            return redirect('/dashboard');
        } else {
            $createUsr = User::create([
                'name' => $user->name,
                'email' => $user->email,
                'google_id' => $user->id,
                'password' => encrypt('user'),
            ]);

            Auth::login($createUsr);
            return redirect('/dashboard');
        }
    } catch (Exception $exception){
        dd($exception->getMessage());
    }
}

Есть роуты

Route::get('/auth/google',[\App\Http\Controllers\SocialController::class,'googleRedirect'])->name('google.auth');

Route::get('/auth/google/callback',[\App\Http\Controllers\SocialController::class,'loginWithGoogle']);

Когда эти роуты подключаю в Web, то через blade.php всё отлично работает, на авторизацию редирект происходит В чём проблема заключается проблема. Когда эти роуты впихиваю в API и пытаюсь сделать GET запрос, через Fetch Api с другого проекта

fetch('http://127.0.0.1:8000/api/auth/google')

происходит ошибка CORS

Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на ССЫЛКА. (Причина: отсутствует заголовок CORS «Access-Control-Allow-Origin»). Код состояния: 200.

Не понимаю, почему при обращении к API появляется ошибка, хотя в Web её нет. Обыскал уже много всего в интернете:

  • Предлагают отключать CORS (хотя я понимаю, что это неправильно)

  • Дописать разные заголовки к запросу fetch

  • Добавить в laravel Fruitcake/Cors

Надеюсь, кто-то встречался с этой проблемой и знает решение, потому что запрос простой и вроде не требует каких-то особенных заголовков (по моему мнению). Благодарю заранее за любую помощь


Ответы (0 шт):