«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как реализовать «Войти через Facebook» в Laravel

Как реализовать «Войти через Facebook» в Laravel

Опубликовано 31 октября 2024 г.
Просматривать:788

How to Implement \

Это руководство проведет вас через процесс добавления функции входа в Facebook в ваше приложение Laravel.

Предварительные условия

  • Настройка проекта Laravel
  • Композитор установлен
  • Аккаунт разработчика Facebook

Шаг 1. Создайте приложение Facebook

  1. Перейти к разработчикам Facebook
  2. Нажмите «Мои приложения», а затем «Создать приложение»
  3. Выберите «Потребительское» в качестве типа приложения
  4. Заполните данные приложения и создайте его
  5. На панели управления приложения запишите свой идентификатор приложения и секрет приложения

Шаг 2. Установите Laravel Socialite

Laravel Socialite предоставляет выразительный и гибкий интерфейс для аутентификации OAuth с Facebook, Twitter, Google, LinkedIn, GitHub, GitLab и Bitbucket.
Установите его через Composer:

composer require laravel/socialite

Шаг 3: Настройте Socialite

Добавьте следующее в файл config/services.php:

'facebook' => [
    'client_id' => env('FACEBOOK_CLIENT_ID'),
    'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
    'redirect' => env('FACEBOOK_REDIRECT_URI'),
],

Затем добавьте их в свой .env-файл:

FACEBOOK_CLIENT_ID=your_facebook_app_id
FACEBOOK_CLIENT_SECRET=your_facebook_app_secret
FACEBOOK_REDIRECT_URI=http://localhost:8000/login/facebook/callback

Шаг 4. Настройте маршруты

Добавьте эти маршруты в ваш маршрут/web.php:

use App\Http\Controllers\Auth\FacebookController;

Route::get('login/facebook', [FacebookController::class, 'redirectToFacebook'])->name('login.facebook');
Route::get('login/facebook/callback', [FacebookController::class, 'handleFacebookCallback']);

Шаг 5: Создайте контроллер Facebook

Создайте новый контроллер:

php artisan make:controller Auth/FacebookController

Реализовать контроллер:

redirect();
    }

    public function handleFacebookCallback()
    {
        try {
            $user = Socialite::driver('facebook')->user();
            $finduser = User::where('facebook_id', $user->id)->first();

            if ($finduser) {
                Auth::login($finduser);
                return redirect()->intended('dashboard');
            } else {
                $newUser = User::create([
                    'name' => $user->name,
                    'email' => $user->email,
                    'facebook_id'=> $user->id,
                    'password' => encrypt('123456dummy')
                ]);

                Auth::login($newUser);
                return redirect()->intended('dashboard');
            }
        } catch (\Exception $e) {
            dd($e->getMessage());
        }
    }
}

Шаг 6. Обновите модель пользователя

Добавьте facebook_id в заполняемый массив в вашей модели пользователя:

protected $fillable = [
    'name',
    'email',
    'password',
    'facebook_id',
];

Шаг 7. Добавьте идентификатор Facebook в таблицу пользователей.

Создайте новую миграцию:

php artisan make:migration add_facebook_id_to_users_table

В новом файле миграции:

public function up()
{
    Schema::table('users', function ($table) {
        $table->string('facebook_id')->nullable();
    });
}

public function down()
{
    Schema::table('users', function ($table) {
        $table->dropColumn('facebook_id');
    });
}

Запустите миграцию:

php artisan migrate

Шаг 8: Добавьте кнопку входа в систему

В окне входа в систему добавьте кнопку «Войти через Facebook»:


    Login with Facebook

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/johnmaths9/how-to-implement-login-with-facebook-in-laravel-2m5p?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить это
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3