2015-03-18 3 views
0

Я только начал использовать Laravel, и я пытаюсь реализовать Socialite в своем проекте, чтобы войти в систему с Facebook, а затем зарегистрировать пользователей через него. Я наблюдал за учебник о Socialite на Laracasts, но я получил эту ошибку:FatalErrorException Laravel 5 Socialite Facebook Войти

"FatalErrorException in AuthenticateUser.php line 34: Call to a member function driver() on a non-object"

Я понятия не имею, почему это происходит, и я оценил бы некоторую помощь!

Вот код, который у меня есть.

AuthController класс:

<?php namespace App\Http\Controllers; 
    use App\Http\Requests; 
    use App\Http\Controllers\Controller; 
    use Illuminate\Http\Request; 
    use App\AuthenticateUser; 

    class AuthController extends Controller { 

    public function login(AuthenticateUser $authenticateUser, Request $request){ 
    return $authenticateUser->execute($request->has('code')); 
    }// End function 
}// End class 

AuthenticateUser класс:

<?php namespace App; 
use Illuminate\Contracts\Auth\Authenticator; 
use Laravel\Socialite\Contracts\Factory as Socialite; 
use App\Data\UserData; 

class AuthenticateUser{ 
    private $socialite; 
    private $auth; 
    private $users; 

    /* Constructor */ 
    public function _construct(UserData $users, Socialite $socialite, Authenticator $auth){ 
    $this->users = $users; 
    $this->socialite = $socialite; 
    $this->auth = $auth; 

}// End constructor 

/* @hasCode : boolean 

*/ 
public function execute($hasCode){ 
    if(!$hasCode) 
     return $this->getAuthorizationFirst(); 

    $user = $this->socialite->driver('facebook')->user(); 
    dd($user); 
} 

/* Método auxiliar para autorizar el login, si no se tiene el código de autorización */ 
private function getAuthorizationFirst(){ 
    return $this->socialite->driver('facebook')->redirect(); //line 34 
    } 
} 

Маршруты:

Route::get('/', function() { 
    if (Auth::check()) { 
     return 'Welcome back, ' . Auth::user()->username; 
    } else { 
     return 'Hi guest. ' . link_to('login', 'Login with facebook'); 
    } 
}); 

Route::get('login','[email protected]'); 

ответ

0

Ваш конструктор назван неправильно. Он должен начинаться с двух символов:

public function __construct(UserData $users, Socialite $socialite, Authenticator $auth); 
+0

что за новобранец ошибка, спасибо приятель !!! – AngelSalazar

+0

Не волнуйся. Иногда это просто требует дополнительной пары глаз. –

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