Facebookログイン


このポストでは、私はFacebookを使用してLaravel Socialite認証について説明します.
以下の手順に従います.

ステップ1


LaTeavel Socialiteパッケージを作曲家を使用してインストールします.
composer require laravel/socialite
注意: laravelよりバージョン8より小さい場合は、プロバイダにパッケージを含めます.
インconfig/app.php 以下のプロバイダを追加します
Laravel\Socialite\SocialiteServiceProvider::class,
エイリアスセクションにスクロールし、以下のコードを追加します
'Socialite' => Laravel\Socialite\Facades\Socialite::class,

ステップ2


フェイスブックサービスconfig/services.php ファイル.
'facebook' => [
        'client_id' => '', //USE FROM FACEBOOK DEVELOPER ACCOUNT
        'client_secret' => '', //USE FROM FACEBOOK DEVELOPER ACCOUNT
        'redirect' => 'https://examplelaravel8.test/facebook/callback/'
    ],

ステップ3


ここでは、あなたが得ることができるようにFacebookアプリを作成する必要がありますclient_id and client_secret フェイスブックから.
あなたはFacebookに行くことによってこれを行うことができますdevelopers URL
と自分のFacebookのアカウントでログインします.
移動するMy Apps , 続行するAdd New App

ステップ4


Socialiteアクションを処理する新しいコントローラを作成します.以下のコマンドを実行して新しいコントローラを生成します
php artisan make:controller FaceBookController
2つの関数をリダイレクトし、コールバックを処理する機能を備えたコードを使用して、FaceBookControllerを更新します.
<?php

namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Laravel\Socialite\Facades\Socialite;

class FaceBookController extends Controller
{
/**
 * Login Using Facebook
 */
 public function loginUsingFacebook()
 {
    return Socialite::driver('facebook')->redirect();
 }

 public function callbackFromFacebook()
 {
  try {
       $user = Socialite::driver('facebook')->user();

       $saveUser = User::updateOrCreate([
           'facebook_id' => $user->getId(),
       ],[
           'name' => $user->getName(),
           'email' => $user->getEmail(),
           'password' => Hash::make($user->getName().'@'.$user->getId())
            ]);

       Auth::loginUsingId($saveUser->id);

       return redirect()->route('home');
       } catch (\Throwable $th) {
          throw $th;
       }
   }
}

ステップ5


Facebook認証ルートを加えてください
// Facebook Login URL
Route::prefix('facebook')->name('facebook.')->group( function(){
    Route::get('auth', [FaceBookController::class, 'loginUsingFacebook'])->name('login');
    Route::get('callback', [FaceBookController::class, 'callbackFromFacebook'])->name('callback');
});

ステップ6


ログインページの上にFacebookボタンを加えてくださいresources/views/auth/login.blade.php
 <a href="{{ route('facebook.login') }}" class="btn btn-facebook btn-user btn-block">
   <i class="fab fa-facebook-f fa-fw"></i>
   Login with Facebook
</a>

ステップ7


追加facebook_id ユーザーテーブルの列、以下のコマンドを実行します
php artisan make:migration add_facebook_id_in_users_table
移行ファイルに以下のコードを追加
 /**
 * Run the migrations.
 *
 * @return void
 */
 public function up()
 {
    Schema::table('users', function (Blueprint $table) {
        $table->string('facebook_id')->nullable();
    });
 }

 /**
 * Reverse the migrations.
 *
 * @return void
 */
 public function down()
 {
   Schema::table('users', function (Blueprint $table) {
       $table->dropColumn('facebook_id');
   });
 }
移動を実行する
php artisan migrate

ステップ8


ユーザーモデルのfillableプロパティを更新するModels/User.php
protected $fillable = [
        'name',
        'email',
        'password',
        'status',
        'facebook_id'
];
最後にログインページに移動し、Facebookのボタンでログインにアクセスしてください.

あなたがそれを統合している間、どんな問題でも得るならば、あなたの問題をコメントしてください.
コードを得るTechtool Github
閉じるこの動画はお気に入りから削除されています.
読書ありがとう
私に手を伸ばしなさい.
Facebook