Laravel 6 Google Login Tutorial With Live Demo

Hello Laravel developers, In this laravel 6 google login tutorial – We would love to share with you, How can we implement google social login in your Laravel based project using laravel 6 socialite package. This laravel google plus login also works with laravel 5.8.

We will implement laravel google social login and illustrate each thing step by step. After we have completed this google login tutorial we will provide a live demo button so you can check easily how to work our laravel google social login example and you can try also your hand.

We will discuss how to add google social button in your laravel 6 projects and how to simple authenticate (log in) users using the google Login button in our laravel app also we learn google register. We will show you each thing step by step.

Contents

  • Install laravel 6 Application
  • Setup Database
  • Download Socialite Package
  • Get Secrets from google
  • Make Route
  • Create Controller & Methods
  • Create Blade View
  • Start Development Server
  • Conclusion

Install laravel 6 Application

First, we need to download a laravel 6 fresh setup. Use the below command and download fresh new laravel setup :

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

Setup Database

After successfully install laravel 6 Application, Go to your project .env file and set up database credential :

 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

Download Socialite Package

In this step, we will install the laravel socialite package for google login. you can use the below command and install this laravel socialite package :

composer require laravel/socialite

After successfully install socialite package, we need to configure the aliese and provider in config/app.php :

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

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

Get Secrets from google

Next, We will create CLIENT ID and CLIENT SECRET.

To create a CLIENT ID and CLIENT SECRET, go to the APIs & Services dashboard and then follow the below video:

After successfully create an app in Google and get credentials from Google dashboard, Set client id and client secret config/service.php file :

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

Go to app/User.php and set fillable property put the below code here :

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

Next step, Go to app/database/create_users_table.php and replace the below function here :

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 we run PHP artisan migrate command go to app/providers/AppServiceProvider.php and put the below code :

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

Next, migrate the table using the below command :

php artisan migrate

first install laravel 6 UI in your project using the below command:

composer require laravel/ui

Second use the below command for creating login, registration, forget password and reset password blade files:

php artisan ui bootstrap --auth

Create Route

We will create two routes in the web.php file. Go to app/routes/web.php file and create two below routes here :

Route::get('/auth/redirect/{provider}', '[email protected]');
Route::get('/callback/{provider}', '[email protected]');

Create Controller

We need to create a controller name SocialController. Use the below command and create Controller :

php artisan make:controller SocialController

After successfully create controller go to app/controllers/SocialController.php and put the below code :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Validator,Redirect,Response,File;
use Socialite;
use App\User;
class SocialController 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;
}
}
Now We Add two buttons on the lara project for social google login. We have added this login button to login blade view and register blade view

In Project, go to Resources/Views/Auth/register.blade.php and add a google social login button :

<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>

In Project, go to Resources/Views/Auth/login.blade.php and add a google social login button :

<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>

Conclusion

In this laravel social login tutorial, We have successfully added the login button on our Lara based project and using google button we have successfully login in the laravel version 6.0 based application. our examples run quickly.

If you have any questions or thoughts to share, use the comment form below to reach us.

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *