Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 07.08.2015 13:40:47

Антон

Логин через фейсбук

Я новичок в ларавел. Создал простенький сайт. реализовал аутентификацию пользователей. Работает. Теперь мне нужно добавить аутентификацию через фейсбук. Я сделал все по этому уроку: http://learninglaravel.net/using-github … alite/link только не для гитхаб. а для фейсбук.

При авторизации через фейсбук происходит перенаправление на фейсбук. Там подтверждается регистрация. Создается запись в базе данных. Потом происходит перенаправление обратно на мой сайт - и дальше ничего не происходит. Белый экран.

В адресной строке браузера: http://localhost.guru.ru/auth/facebook/ … XifYCi#_=_

Вот логи:
PHP Fatal error:  Class 'App\Http\Controllers\Auth\Auth' not found in D:\OpenServer\domains\localhost.guru.ru\app\Http\Controllers\Auth\AuthController.php on line 56

PHP Fatal error:  Uncaught exception 'ReflectionException' with message 'Class App\Exceptions\Handler does not exist' in D:\OpenServer\domains\localhost.guru.ru\vendor\laravel\framework\src\Illuminate\Container\Container.php:736

#2 07.08.2015 13:43:30

Антон

Re: Логин через фейсбук

Вот код

<?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 Laravel\Socialite\Facades\Socialite;
use Redirect;


class AuthController extends Controller

{

    /**
     * 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()
    {
        try {
            $user = Socialite::driver('facebook')->user();
        } catch (Exception $e) {
            return Redirect::to('auth/facebook');
        }

        $authUser = $this->findOrCreateUser($user);

        Auth::login($authUser, true);

        return Redirect::to('home');
    }

    /**
     * Return user if exists; create and return if doesn't
     *
     * @param $facebookUser
     * @return User
     */
    private function findOrCreateUser($facebookUser)
    {
        if ($authUser = User::where('facebook_id', $facebookUser->id)->first()) {
            return $authUser;
        }

        return User::create([
            'name' => $facebookUser->name,
            'email' => $facebookUser->email,
            'facebook_id' => $facebookUser->id,
            'avatar' => $facebookUser->avatar
        ]);
   
    }

    /*
    |--------------------------------------------------------------------------
    | 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;

    /**
     * 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']),
        ]);       
    }   
}

#3 07.08.2015 13:45:10

Антон

Re: Логин через фейсбук

Помогите, пожалуйста, новичку) спасибо!

#4 20.08.2015 13:51:32

Re: Логин через фейсбук

Auth::login($authUser, true);

откуда Auth?

Не в сети

Подвал раздела