「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Laravelで「Facebookでログイン」を実装する方法

Laravelで「Facebookでログイン」を実装する方法

2024 年 10 月 31 日公開
ブラウズ:214

How to Implement \

このチュートリアルでは、Laravel アプリケーションに Facebook ログイン機能を追加するプロセスについて説明します。

前提条件

  • Laravel プロジェクトのセットアップ
  • Composer がインストールされました
  • Facebook デベロッパー アカウント

ステップ 1: Facebook アプリを作成する

  1. Facebook 開発者に移動
  2. [マイ アプリ] をクリックし、[アプリの作成] をクリックします
  3. アプリの種類として「コンシューマー」を選択します
  4. アプリの詳細を入力してアプリを作成します
  5. アプリのダッシュボードで、アプリ ID とアプリのシークレットをメモします

ステップ2: Laravel Socialiteをインストールする

Laravel Socialite は、Facebook、Twitter、Google、LinkedIn、GitHub、GitLab、Bitbucket を使用した OAuth 認証への表現力豊かで流暢なインターフェイスを提供します。
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: ルートを設定する

これらのルートをroutes/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: FacebookController を作成する

新しいコントローラを作成します:

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: ユーザーモデルを更新する

User モデルの入力可能な配列に facebook_id を追加します:

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

ステップ 7: Facebook ID をユーザーテーブルに追加する

新しい移行を作成します:

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