Home PHP Framework Laravel Laravel development: How to implement social login using Laravel Socialite and Facebook?

Laravel development: How to implement social login using Laravel Socialite and Facebook?

Jun 13, 2023 am 11:39 AM
laravel facebook socialite

Laravel is a popular PHP web application development framework that provides concise and elegant syntax to help developers build applications faster. Laravel Socialite is a plug-in for Laravel that helps you implement social login using APIs provided by social media platforms such as Facebook, Twitter, and Google. In this article, we will introduce how to implement social login using Laravel Socialite and Facebook.

  1. Installing Laravel Socialite

To use Laravel Socialite with Laravel, you need to install it first. You can install Laravel Socialite in your Laravel project using Composer. In the terminal, navigate to the project directory and execute the following command to install:

composer require laravel/socialite
Copy after login
  1. Create Facebook application and obtain application credentials

Before logging in with Facebook, You need to create a Facebook application. First, log into the Facebook Developers website at https://developers.facebook.com and create a new application using your Facebook credentials.

After creating the app, get the app credentials, click "Settings" -> "Basic" and copy your App ID and App Secret (Secret Key) into any text editor, we You will need them later.

  1. Modify env file

Find the ".env" file in the root directory of your Laravel project and add the following content to the bottom of the file:

FACEBOOK_ID=your_facebook_app_id_here
FACEBOOK_SECRET=your_facebook_app_secret_here
FACEBOOK_CALLBACK_URL=http://your_website_url_here/auth/facebook/callback
Copy after login

Please replace the text in "your_facebook_app_id_here" and "your_facebook_app_secret_here" with the "App ID" and "Secret Key" you obtained from the Facebook developer website. Please make sure to add /auth/facebook/callback at the end of the FACEBOOK_CALLBACK_URL value to redirect to your application's callback URL after a successful Facebook login.

  1. Create routes and controllers

To implement Facebook login, we need to create two routes and a controller. The route will direct the user to Facebook and the Facebook login callback.

//引导用户前往 Facebook 登录页面
Route::get('facebook', function () {
    return Socialite::driver('facebook')->redirect();
});

//Facebook 登录回调
Route::get('auth/facebook/callback', 'AuthFacebookController@handleCallback');
Copy after login

The controller is needed to handle responses from Facebook and create or update users in your application. Create FacebookController using the following command:

php artisan make:controller Auth/FacebookController
Copy after login

In FacebookController, we need to write handleCallback method to handle Facebook response and create or update users in the database.

<?php
namespace AppHttpControllersAuth;
use AppUser;
use IlluminateHttpRequest;
use AppHttpControllersController;
use LaravelSocialiteFacadesSocialite;
class FacebookController extends Controller {
    public function handleCallback(Request $request) {
        try {
            // 从 Facebook 获取用户信息
            $user = Socialite::driver('facebook')->user();
        } catch (Exception $e) {
            // 如果 Facebook 验证失败,重定向到登录页
            return redirect('login');
        }
        // 查找用户
        $authUser = $this->findOrCreateUser($user);
        // 登录用户
        auth()->login($authUser, true);
        // 重定向到应用程序首页
        return redirect()->route('home');
    }
    private function findOrCreateUser($facebookUser) {
        // 根据 Facebook 用户 ID 和服务提供商名称查找用户
        $authUser = User::where('facebook_id', $facebookUser->getId())
            ->where('provider', 'facebook')
            ->first();
        if ($authUser) {
            return $authUser;
        }
        // 如果未找到该用户,创建一个新用户
        return User::create([
            'name' => $facebookUser->getName(),
            'email' => $facebookUser->getEmail(),
            'facebook_id' => $facebookUser->getId(),
            'provider' => 'facebook',
            'avatar' => $facebookUser->getAvatar(),
            'password' => md5(rand(1,10000)),
        ]);
    }
} 
Copy after login

Note that here we use md5(rand(1,10000)) to set the user’s random password.

  1. At this point, the implementation of social login is completed.

Now you can access the "/facebook" route of the application and can complete the login process by clicking on Facebook login.

Using Laravel Socialite and Facebook, implementing social login becomes very simple and can greatly reduce your workload. Laravel and some other PHP frameworks provide developers with many easy-to-use tools to build great web applications, such as social login here.

The above is the detailed content of Laravel development: How to implement social login using Laravel Socialite and Facebook?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to get the return code when email sending fails in Laravel? How to get the return code when email sending fails in Laravel? Apr 01, 2025 pm 02:45 PM

Method for obtaining the return code when Laravel email sending fails. When using Laravel to develop applications, you often encounter situations where you need to send verification codes. And in reality...

Laravel schedule task is not executed: What should I do if the task is not running after schedule: run command? Laravel schedule task is not executed: What should I do if the task is not running after schedule: run command? Mar 31, 2025 pm 11:24 PM

Laravel schedule task run unresponsive troubleshooting When using Laravel's schedule task scheduling, many developers will encounter this problem: schedule:run...

In Laravel, how to deal with the situation where verification codes are failed to be sent by email? In Laravel, how to deal with the situation where verification codes are failed to be sent by email? Mar 31, 2025 pm 11:48 PM

The method of handling Laravel's email failure to send verification code is to use Laravel...

How to implement the custom table function of clicking to add data in dcat admin? How to implement the custom table function of clicking to add data in dcat admin? Apr 01, 2025 am 07:09 AM

How to implement the table function of custom click to add data in dcatadmin (laravel-admin) When using dcat...

Bitget Exchange official website login latest entrance Bitget Exchange official website login latest entrance Feb 18, 2025 pm 02:54 PM

The Bitget Exchange offers a variety of login methods, including email, mobile phone number and social media accounts. This article details the latest entrances and steps for each login method, including accessing the official website, selecting the login method, entering the login credentials, and completing the login. Users should pay attention to using the official website when logging in and properly keep the login credentials.

Laravel Redis connection sharing: Why does the select method affect other connections? Laravel Redis connection sharing: Why does the select method affect other connections? Apr 01, 2025 am 07:45 AM

The impact of sharing of Redis connections in Laravel framework and select methods When using Laravel framework and Redis, developers may encounter a problem: through configuration...

Laravel multi-tenant extension stancl/tenancy: How to customize the host address of a tenant database connection? Laravel multi-tenant extension stancl/tenancy: How to customize the host address of a tenant database connection? Apr 01, 2025 am 09:09 AM

Custom tenant database connection in Laravel multi-tenant extension package stancl/tenancy When building multi-tenant applications using Laravel multi-tenant extension package stancl/tenancy,...

Ouyi official website Ouyi okx official entrance link Ouyi official website Ouyi okx official entrance link Mar 21, 2025 pm 06:15 PM

With the increasing popularity of cryptocurrency trading, it is crucial to choose a safe and reliable trading platform. As the world's leading digital asset trading platform, Ouyi OKX is highly favored for its high security, rich trading products, good liquidity and user experience. However, the Internet is full of false information, and many users have difficulty identifying the official website of Ouyi OKX. This article will guide you how to safely and quickly access the Ouyi OKX official platform, avoid accidentally entering phishing websites, and ensure the security of your digital assets. We will introduce various methods such as search engines, third-party websites, official social media, and official apps to find official portal links, and provide important security tips to help you conduct safe and reliable cryptocurrency transactions on the Ouyi OKX platform.

See all articles