Однако я новичок в Laravel, и я следую руководству по http://www.codeanchor.net/blog/complete-laravel-socialite-tutorial/ , чтобы войти в систему через Facebook в мое приложение. Однако почти везде я нахожу учебник с использованием Github или Twitter для плагина Socialite, предоставленного в Laravel.
Моя проблема заключается в том, что, следуя всем инструкциям, когда я нажимаю кнопку «Войти в Facebook», она выдает «Недопустимое исключение аргумента» с указателем No Socialite. ».
Другой вопрос переполнения стека, казалось, сузил все: https://stackoverflow.com/questions/29673898/laravel-socialite-invalidargumentexception-in-socialitemanager-php-line-138-n
Заявив, что проблема находится в config / services.php
Теперь у меня есть app_id и app_secret. Однако ссылка перенаправления кажется запутанной, поскольку я не могу найти ее на Facebook. Я знаю, что здесь мое приложение должно пойти в Facebook для входа в систему, однако, не зная, что это должно быть.
У кого-нибудь есть идея по этому поводу.
В вашем композиторе.json add- "laravel/socialite": "~2.0",
"require": { "laravel/framework": "5.0.*", "laravel/socialite": "~2.0",
composer update
В config / services.php добавьте:
//Socialite 'facebook' => [ 'client_id' => '1234567890444', 'client_secret' => '1aa2af333336fffvvvffffvff', 'redirect' => 'http://laravel.dev/login/callback/facebook', ],
Вам нужно создать два маршрута, мои:
//Social Login Route::get('/login/{provider?}',[ 'uses' => 'AuthController@getSocialAuth', 'as' => 'auth.getSocialAuth' ]); Route::get('/login/callback/{provider?}',[ 'uses' => 'AuthController@getSocialAuthCallback', 'as' => 'auth.getSocialAuthCallback' ]);
Вам также необходимо создать контроллер для указанных выше маршрутов:
<?php namespace App\Http\Controllers; use Laravel\Socialite\Contracts\Factory as Socialite; class AuthController extends Controller { public function __construct(Socialite $socialite){ $this->socialite = $socialite; } public function getSocialAuth($provider=null) { if(!config("services.$provider")) abort('404'); //just to handle providers that doesn't exist return $this->socialite->with($provider)->redirect(); } public function getSocialAuthCallback($provider=null) { if($user = $this->socialite->with($provider)->user()){ dd($user); }else{ return 'something went wrong'; } } }
и, наконец, добавьте URL-адрес сайта в свое приложение Facebook так:
Создайте поставщика в файле config / services.php
'facebook' => [ 'client_id' => 'your-fb-client-id', 'client_secret' => 'your-fb-secret', 'redirect' => 'http://your-redirect.com/route', ],
теперь вы можете создать контроллер со следующим кодом
//this function will redirect users to facebook login page public function facebook() { return \Socialize::with('facebook')->redirect(); } public function callback() { $user = \Socialize::with('facebook')->user(); //now we have user details in the $user array dd($user); }
и это ваш маршрут
Route::get('facebook', 'LoginController@facebook'); Route::get('callback', 'LoginController@callback');