Laravel 7/6 Socialite Google Login Example
Laravel 02-Nov-2020

Laravel 7/6 Socialite Google Login Example

Laravel 7, 6 socialite google gmail account login example tutorial. Here you will learn how to implement socialite google gmail account login in laravel app using laravel socialite package.

Sometimes, you need to add social login (google, github, facebook, twitter) button in your laravel app for easy login purpose.

This tutorial also provide you live demo of laravel socialite google login app. You can click here “Demo“.

So, This laravel socialite google login example tutorial will help you step by step on how to implement socialite google login in laravel app.

Laravel Socialite Google Login Example

Follow the below and implement socialite google gmail account login in laravel app:

  • Install laravel App
  • Add Database Details
  • Install Socialite Package For Google Login
  • Create Google App
  • Set Google App Details
  • Add Routes
  • Generate Auth Files By Artisan
  • Create Controller
  • Add Socialite Google Login Button In Blade Views
  • Run Development Server

Step1: Install laravel App

First of all, Download or install laravel fresh app for your laravel socialite google gmail account login app. So use the following command to download laravel fresh app:

composer create-project --prefer-dist laravel/laravel blog

Step 2: Add Database Details

In this step, you need to add database details in .env file. So navigate to project root directory and find .env file. And add your database details into .env file as follow:

 DB_CONNECTION=mysql 
 DB_HOST=127.0.0.1 
 DB_PORT=3306 
 DB_DATABASE=here your database name here
 DB_USERNAME=here database username here
 DB_PASSWORD=here database password here

Step 3: Install Socialite Package For Google Login

In this step, you need to run the following command to install laravel socialite package for google login:

composer require laravel/socialite

Now, Navigate to config directory and open app.php file. Then add aliese and provider app.php:

'providers' => [
     // Other service providers…
 Laravel\Socialite\SocialiteServiceProvider::class,
],

'aliases' => [
// Other aliases…
'Socialite' => Laravel\Socialite\Facades\Socialite::class,
],

Step 4: Create Google App

In this step, you need to create google app for get CLIENT ID and CLIENT SECRET to add a social google login button in the laravel based project.

If you do not have google client id and client secret for your laravel google login app. So you need to create google app for get client id and client secret for your laravel socialite google login. So you can follow the below steps and create google app:

Step 1: Visit Google Developer Console. And create a new project as following in below picture:

Step 2: you will see the screen looks like, show here you can set your project name as you want.

Step 3: Now you have successfully created a new project. After that, you need to select the created projects on the top menu. Then click on OAuth consent screen and select the given option according to your requirement:

Step 4: when you will be done above. After that automatically appear below given screen. In this screen, you need to fill your website URL, privacy policy URL, etc.

Step 5: you need to click on left side menu credentials and appear below screen. In this screen, you need to select OAuth client ID.

Step 6: After that, the below form will be apper. Here From different Application type options, you have to select Web application. Once you have select Web application option, then one form will appear on web page. Here you have to define Name and you have also define Authorized redirect URIs field and lastly click on Create button.

Step 7: the pop looks like below in picture automatically appear. Once you have click on the create button, then you can get your Client ID and your client secret key. You have to copy both key for future use for implement Login using Google account using PHP.

Step 5: Add Google App Details

Now, add google app details with redirect url.

So, navigate to the config directory and open service.php file. And add the google client id, secret and redirect url in service.php file:

 'google' => [
    'client_id' => 'xxxx',
    'client_secret' => 'xxx',
    'redirect' => 'http://127.0.0.1:8000/callback/google',
  ], 

After that, open User.php model and add the following properties into User.php model file:

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

Now, Navigate to app/database folder and open create_users_table.php. And add the following code into your create_users_table.php file:

public function up()
{
Schema::create('users', function (Blueprint $table) {
    $table->increments('id');
    $table->string('name');
    $table->string('email')->unique()->nullable();
    $table->string('provider');
    $table->string('provider_id');
    $table->timestamp('email_verified_at')->nullable();
    $table->string('password')->nullable();
    $table->rememberToken()->nullable();
    $table->timestamps();
});
}

Before you run PHP artisan migrate command, Navigate to go to app/providers folder and open AppServiceProvider.php file. And add the following code into your AppServiceProvider.php file:

...
use Illuminate\Support\Facades\Schema;
 
....
function boot()
{
    Schema::defaultStringLength(191);
}
... 

Next, migrate the table using the below command :

php artisan migrate

Step 6: Generate Auth File By Artisan

In this step, you need to run the following commands to create or generate auth files:

Install Laravel UI

composer require laravel/ui

Create Auth

php artisan ui bootstrap --auth

NPM Install

npm install

Step 7: Add Routes

Now, you need to add routes in the web.php file. So navigate to routes folder and open web.php file. Then add the following routes into web.php file:

 Route::get('/auth/redirect/{provider}', 'GoogleLoginController@redirect');
 Route::get('/callback/{provider}', 'GoogleLoginController@callback');

Step 8: Create Controller

In this step, you need to run the following command to create a controller name SocialController.php. So run the following command on cmd

php artisan make:controller GoogleLoginController.php 

Then navigate to app/controllers folder and open GoogleLoginController.php. And add the following code into your GoogleLoginController.php file:

<?php
 
namespace App\Http\Controllers;
 
use Illuminate\Http\Request;
use Validator,Redirect,Response,File;
use Socialite;
use App\User;
 
class GoogleLoginController extends Controller
{
 
public function redirect($provider)
{
    return Socialite::driver($provider)->redirect();
}
 
public function callback($provider)
{
           
    $getInfo = Socialite::driver($provider)->user();
     
    $user = $this->createUser($getInfo,$provider);
 
    auth()->login($user);
 
    return redirect()->to('/home');
 
}
function createUser($getInfo,$provider){
 
 $user = User::where('provider_id', $getInfo->id)->first();
 
 if (!$user) {
     $user = User::create([
        'name'     => $getInfo->name,
        'email'    => $getInfo->email,
        'provider' => $provider,
        'provider_id' => $getInfo->id
    ]);
  }
  return $user;
}
}

Step 9: Add Socialite Google Login Button In Blade Views

In this step, you need to add socialite google login buttons in blade views file.

So, Navigate to Resources/Views/Auth folder and open register.blade.php. Then add a laravel socialite google login button in register.blade.php file:

<hr>
<div class="form-group row mb-0">
<div class="col-md-8 offset-md-4">
<a href="{{ url('/auth/redirect/google') }}" class="btn btn-primary"><i class="fa fa-google"></i> Google</a>
</div>
</div>

Next, Navigate to Resources/Views/Auth folder and open login.blade.php. Then add a laravel socialite google login button in login.blade.php file:

<hr>
<div class="form-group row mb-0">
<div class="col-md-8 offset-md-4">
<a href="{{ url('/auth/redirect/google') }}" class="btn btn-primary"><i class="fa fa-google"></i> Google</a>
</div>
</div>

Step 10: Run Development Server

Finally, run the following command to start the development server:

 php artisan serve

Now you are ready to run your laravel socialite google login app. So open your browser and hit the following urls:

 http://127.0.0.1:8000/login

 Or direct hit in your browser

 http://localhost/blog/public/login

Conclusion

In this laravel socialite login example tutorial from scratch, You have learned how to implement google login in laravel using socialite package.