Laravel Socialite Google работает, но YouTube печатает ошибку - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь интегрировать систему аутентификации в социальных сетях с несколькими драйверами, которые она предлагает. До сих пор я реализовал Google и YouTube, но, как следует из заголовка, Google работает правильно, но когда я пытаюсь выбрать канал YouTube в окне аутентификации, я получаю длинное сообщение об ошибке, перечисляющее кучу файлов, и я думаю, что первая строка наиболее важный: [Цитата] GuzzleHttp \ Exception \ ClientException: ошибка клиента: GET https://www.googleapis.com/oauth2/v3/userinfo?prettyPrint=false привела к ответу 401 Unauthorized: {"error": "invalid_request", "error_description": "Invalid Credentials"} в / var / www / html / compro / vendor / guzzlehttp / жрать / SRC / Исключение / RequestException.php: 113 [/ Цитата]

Это моя миграция:

public function up()
    {
        Schema::create('social_accounts', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('user_id')->unsigned();
            $table->string('provider_user_id');
            $table->string('provider');
            $table->timestamps();
            $table->softDeletes();
        });

        Schema::table('social_accounts', function (Blueprint $table) {
            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
        });
    }

И другие файлы ... в .env У меня настроены следующие значения:

GOOGLE_CLIENT_ID=secret_id_value_obviously
GOOGLE_CLIENT_SECRET=secret_secret_value_obviously
GOOGLE_REDIRECT=http://localhost:8000/auth/google/callback

YOUTUBE_CLIENT_ID=secret_id_value_obviously
YOUTUBE_CLIENT_SECRET=secret_secret_value_obviously
YOUTUBE_REDIRECT=http://localhost:8000/auth/google/callback

В config / services.php добавлено:

'google' => [
        'client_id' => env('GOOGLE_CLIENT_ID'),
        'client_secret' => env('GOOGLE_CLIENT_SECRET'),
        'redirect' => env('GOOGLE_REDIRECT'),
    ],

    'youtube' => [
        'client_id' => env('YOUTUBE_CLIENT_ID'),
        'client_secret' => env('YOUTUBE_CLIENT_SECRET'),
        'redirect' => env('YOUTUBE_REDIRECT'),
    ],

В config / app.php добавлены эти строки, чтобы заставить youtube socialite работать вообще, по крайней мере, это то, что описывается в документации этого драйвера:

Laravel\Socialite\SocialiteServiceProvider::class,
        \SocialiteProviders\Manager\ServiceProvider::class,

В app / Providers / EventServiceProvider.php добавлены следующие строки:

\SocialiteProviders\Manager\SocialiteWasCalled::class => [
            'SocialiteProviders\\YouTube\\YouTubeExtendSocialite@handle',
        ],

В приложении / User.php создано отношение:

public function profile()
    {
        return $this->hasOne('App\SocialProfile');
    }

В маршрутах / web.php:

Route::get('/login', function () {
    return view('socialLogin');
});
Route::get('/auth/social/{social}', 'SocialLoginController@redirectToSocial');
Route::get('/auth/{social}/callback', 'SocialLoginController@handleSocialCallback');

Я впервые пользуюсь светским светом, поэтому я как бы схожу с ума и не знаю, где я мог ошибиться. Добавление других светских драйверов, вероятно, пройдет легко, но в этом случае это может быть что-то среднее между Google и YouTube, что вызывает ошибку.

Если кто-то хочет взглянуть на это, вот полное сообщение об ошибке: https://pastebin.com/5s29K4cQ

...