Laravel Socialite - Facebook Войти - Bad Gateway - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь реализовать вход в Facebook с использованием Laravel Socialite в приложении Laravel 5.8.21.Что я сделал, так это то, что у меня есть кнопка на странице, и я хочу, чтобы пользователь мог подключить свой профиль к своему профилю Facebook и получить из него токен Facebook.

На данный момент я загрузил laravel / socialite через композитора, добавил FacebookServiceProvider и зарегистрировал его в приложении Laravel:

<?php

namespace App\Providers;

use Facebook\Facebook;
use Illuminate\Support\ServiceProvider;

class FacebookServiceProvider extends ServiceProvider
{
    /**
     * Register services.
     *
     * @return void
     */
    public function register()
    {
        $this->app->singleton(Facebook::class, function($app) {
            $config = config('services.facebook');
            return new Facebook([
                'app_id'                => $config['client_id'],
                'app_secret'            => $config['client_secret'],
                'default_graph_version' => $config['default_graph_version']
            ]);
        });
    }

    /**
     * Bootstrap services.
     *
     * @return void
     */
    public function boot()
    {
        //
    }
}

Следующим шагом для меня былосоздайте приложение для Facebook, чтобы получить app_id и app_secret и правильную версию графика.Я ввел эти учетные данные в свой файл .env.

Теперь я реализовал SocialMediaController и добавил Действия для Facebook для управления OAuth-подключением и получения токена из Facebook.

<?php

namespace App\Http\Controllers\EmployerBackend;

use App\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Laravel\Socialite\Facades\Socialite;

class SocialMediaController extends Controller
{
    public function index(Request $request)
    {
        $user = $request->user();

        return response()->view('backend.employer.social-media.index', [
            'user' => $user
        ]);
    }

    public function redirectToFacebookProvider()
    {
        return Socialite::driver('facebook')->scopes([
            'manage_pages', 'publish_pages'
        ])->redirect();
    }

    public function handleProviderFacebookCallback()
    {
        $authUser = Socialite::driver('facebook')->user();

        $user = User::where('email', '=', $authUser->email)->first();

        if ($user === null) {
            abort(404);
        }

        $user->facebook_token = $authUser->token;
        $user->save();

        return response()->redirectToRoute('employer.socialMedia.index');
    }
}

Теперь, когда я нажимаю на кнопку и принимаю модальное диалоговое окно facebook, я перенаправлен на мой сайт.Но я каждый раз получаю NGINX 502 Bad Gateway, и я не знаю, чем он вызван.

Мои настройки:

Laravel 5.8.24
Laravel Valet 
Nginx 1.17.0
MySQL  Ver 14.14 Distrib 5.7.25, for osx10.14 (x86_64) using  EditLine wrapper
PHP@7.2

OS: macOS Mojave 10.14.5

Кто-нибудь знает, почему у меня здесь Bad Gateway?

РЕДАКТИРОВАТЬ:

сообщение об ошибке: * 13 восходящее преждевременно закрытое соединение при чтении заголовка ответа из восходящего потока

Это вызывает шлюз 502, и это происходит, когда клиент FB пытаетсяполучить токен доступа.

Кто-нибудь имел это раньше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...