」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 Laravel 中實現“使用 Facebook 登入”

如何在 Laravel 中實現“使用 Facebook 登入”

發佈於2024-10-31
瀏覽:635

How to Implement \

本教學將引導您完成為 Laravel 應用程式新增 Facebook 登入功能的流程。

先決條件

  • Laravel 計畫建立
  • 已安裝作曲家
  • Facebook 開發者帳號

第 1 步:建立 Facebook 應用程式

  1. 前往 Facebook 開發者
  2. 點擊“我的應用程式”,然後點擊“建立應用程式”
  3. 選擇「Consumer」作為應用程式類型
  4. 填寫應用詳細資訊並建立應用程式
  5. 在應用程式儀表板中,記下您的應用程式 ID 和應用程式金鑰

第 2 步:安裝 Laravel Socialite

Laravel Socialite 為 Facebook、Twitter、Google、LinkedIn、GitHub、GitLab 和 Bitbucket 的 OAuth 身份驗證提供了一個富有表現力、流暢的介面。
透過 Composer 安裝:

composer require laravel/socialite

第 3 步:設定社交名流

將以下內容新增至您的 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 步:更新使用者模型

將 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