Я пытаюсь реализовать Facebook Вход в мой проект, однако я получаю сообщение об ошибке:Laravel 5,1 - Facebook Аутентификация через Socialite
ClientException in Middleware.php line 69: Client error: 400
in /Applications/MAMP/htdocs/laratest/vendor/guzzlehttp/guzzle/src/Middleware.php line 69
at Middleware::GuzzleHttp{closure}(object(Response)) in Promise.php line 199
at Promise::callHandler('1', object(Response), array(object(Promise), object(Closure), null)) in Promise.php line 152
at Promise::GuzzleHttp\Promise{closure}() in TaskQueue.php line 60
at TaskQueue->run() in CurlMultiHandler.php line 96
шагов я прошла:
composer require laravel/socialite
&composer update
.В моей конфигурации> services.app,
'facebook' => [ 'client_id' => env('FB_CLIENT_ID'), 'client_secret' => env('FB_SECRET_ID'), 'redirect' => 'http://localhost.com:8888', ],
Добавлено
Laravel\Socialite\SocialiteServiceProvider::class,
&'Socialite' => Laravel\Socialite\Facades\Socialite::class,
в конфигурации> app.phpНастройте маршруты успешно.
Route::get('auth/facebook', 'Auth\[email protected]'); Route::get('auth/facebook', 'Auth\[email protected]');
Настройте успешно ссылку на мой файл лезвия.
Login with Facebook
В мой контроллер> AuthController.php, я добавил:
use Laravel\Socialite\Facades\Socialite; ** Beside everything that AuthController has, inside the AuthController class, I added:** public function redirectToProvider() { return Socialite::driver('facebook') ->scopes(['scope1', 'scope2'])->redirect(); } /** * Obtain the user information from Facebook. * * @return Response */ public function handleProviderCallback() { $user = Socialite::driver('facebook')->user(); // $user->token; }
Также пользователи таблице:
public function up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('username'); $table->string('name'); $table->string('email')->unique(); $table->string('password', 60); $table->string('avatar'); $table->string('provider'); $table->string('provider_id'); $table->rememberToken(); $table->timestamps(); }); }
Edit: Когда я закомментировать $user = Socialite::driver('facebook')->user();
часть, я получаю redir ected к localhost.com/auth/facebook
Edit 2: Мой .env
файл:
'facebook' => [ FB_CLIENT_ID => '###', FB_SECRET_ID => 'this-is-secret!', ],
Хороший вызов, два идентичных маршрута GET, вероятно, будут проблемой. – ceejayoz
-> scopes (['scope1', 'scope2']) также могут вызывать проблемы, действительно ли это похоже на ваш контроллер? Если это так, они неизвестны Facebook, и, скорее всего, они отклонят запрос. – Francismori7
Я добавил 'auth/facebook/callback' для второго маршрута, и теперь он направляется в Facebook. Однако, как сказал @ Francismori7, здесь появляется ошибка, которую я получаю: ошибка Facebook -> 'Invalid Scope: scope1'. Должен ли я просто удалить области «->» (['scope1', 'scope2']) -> redirect(); 'part полностью? – senty