2015-09-13 6 views
5

Я выполнил все шаги в http://laravel.com/docs/5.1/authentication, чтобы сделать социальный логин с facebook на Laravel 5.1.Facebook Социальный логин с Laravel 5.1

Вот шаги, которые я затем:

1 - Используйте команду в моем корневом проекте Laravel:

composer require laravel/socialite 

2 - зарегистрировать Laravel \ Socialite \ SocialiteServiceProvider в вашей конфигурации/приложения. файл конфигурации PHP:

'providers' => [ 
    // Other service providers... 

    Laravel\Socialite\SocialiteServiceProvider::class, 
], 

3 - Добавить фасад Socialite в массив псевдонимов в файле конфигурации приложения:

'Socialite' => Laravel\Socialite\Facades\Socialite::class, 

4 - добавьте facebook услуги в конфиге/services.php:

'facebook' => [ 
     'client_id' => env('FACEBOOK_CLIENT_ID'), 
     'client_secret' => env('FACEBOOK_CLIENT_SECRET'), 
     'redirect' => 'http://homestead.app/auth/facebook/callback', 
    ], 

5 - добавить к моему AuthController.php методов redirectToProvider() и handleProviderCallback():

<?php 

namespace App\Http\Controllers\Auth; 

use App\User; 
use Validator; 
use App\Http\Controllers\Controller; 
use Illuminate\Foundation\Auth\ThrottlesLogins; 
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers; 
use Socialite; 

class AuthController extends Controller 
{ 
    /* 
    |-------------------------------------------------------------------------- 
    | Registration & Login Controller 
    |-------------------------------------------------------------------------- 
    | 
    | This controller handles the registration of new users, as well as the 
    | authentication of existing users. By default, this controller uses 
    | a simple trait to add these behaviors. Why don't you explore it? 
    | 
    */ 

    use AuthenticatesAndRegistersUsers, ThrottlesLogins; 

    /** 
    * Redirect path after successful login 
    * 
    * @var string 
    */ 
    protected $redirectPath = '/greeting'; 

    /** 
    * Redirect path after failed login 
    * 
    * @var string 
    */ 
    protected $loginPath = '/auth/login'; 

    /** 
    * Create a new authentication controller instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     $this->middleware('guest', ['except' => 'getLogout']); 
    } 

    /** 
    * Get a validator for an incoming registration request. 
    * 
    * @param array $data 
    * @return \Illuminate\Contracts\Validation\Validator 
    */ 
    protected function validator(array $data) 
    { 
     return Validator::make($data, [ 
      'name' => 'required|max:255', 
      'email' => 'required|email|max:255|unique:users', 
      'password' => 'required|confirmed|min:6', 
     ]); 
    } 

    /** 
    * Create a new user instance after a valid registration. 
    * 
    * @param array $data 
    * @return User 
    */ 
    protected function create(array $data) 
    { 
     return User::create([ 
      'name' => $data['name'], 
      'email' => $data['email'], 
      'password' => bcrypt($data['password']), 
     ]); 
    } 

    /** 
    * Redirect the user to the Facebook authentication page. 
    * 
    * @return Response 
    */ 


    public function redirectToProvider() 
    { 
     return Socialite::driver('facebook')->redirect(); 
    } 

    /** 
    * Obtain the user information from Facebook. 
    * 
    * @return Response 
    */ 
    public function handleProviderCallback() 
    { 
     $user = Socialite::driver('facebook')->user(); 

     dd($user); 
    } 
} 

Я хочу подчеркнуть, что я создал AuthController.php в папке app/Http/Controllers/Auth /, потому что после того, как он просит создать маршруты: 'Auth \ AuthController @ redirectToProvider' 'Auth \ AuthController @ handleProviderCallbac к»

6 - Я добавил маршруты:

Route::get('auth/facebook', 'Auth\[email protected]ovider'); 
Route::get('auth/facebook/callback', 'Auth\[email protected]'); 

Теперь, когда я нажимаю„Войти через Facebook“в моей странице входа он идет http://homestead.app/auth/facebook и получить мне следующую ошибку:

FatalErrorException in AuthController.php line 90: Class 'Socialite' not found

Я пытался следовать codeanchor guide но для Laravel 5.0 (мне нужно использовать, что на Laravel 5.1)

+0

Попробуйте использовать 'comper dump-autoload' в вашем композиторе – aldrin27

+0

Я только что попробовал, но ничего не изменилось – Finn87

+0

Вы используете базу данных homestead? или местных? – aldrin27

ответ

1

Наконец я решил с удаление всего и установка Homestead с самого начала

+0

nooo, я не хочу этого делать :( – mkmnstr

+0

@mkmnstr Затем просто попробуйте удалить все из папки «vendor» и «composer install». – totymedli

Смежные вопросы