<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ socialite  - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ socialite  - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Mon, 25 May 2026 05:06:26 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/socialite/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ How to Set Up Google Authentication in Laravel Applications ]]>
                </title>
                <description>
                    <![CDATA[ In this digital world, it’s important for your applications to have a smooth and secure authentication process. This helps improve user experience and the overall security of your apps. Google Authentication is among the most trusted and convenient w... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-set-up-google-auth-in-laravel-apps/</link>
                <guid isPermaLink="false">674f227adf280a40b7047b7f</guid>
                
                    <category>
                        <![CDATA[ Laravel ]]>
                    </category>
                
                    <category>
                        <![CDATA[ google authenticator ]]>
                    </category>
                
                    <category>
                        <![CDATA[ google auth ]]>
                    </category>
                
                    <category>
                        <![CDATA[ socialite  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Abhijeet Dave ]]>
                </dc:creator>
                <pubDate>Tue, 03 Dec 2024 15:23:38 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/res/hashnode/image/upload/v1732711351776/931a1ade-e652-4a0b-a16e-925482128fc0.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>In this digital world, it’s important for your applications to have a smooth and secure authentication process. This helps improve user experience and the overall security of your apps.</p>
<p>Google Authentication is among the most trusted and convenient ways for users to log into a site using their Google account. And it means that they don’t have to remember yet another username and password.</p>
<p>Integrating Google OAuth into your <a target="_blank" href="https://laravel.com/">Laravel</a> application simplifies the login process, encourages user engagement, and boosts the credibility of your platform. In this tutorial, I’ll guide you through the steps of implementing Google Authentication in a Laravel application. We’ll go from setting up the Google API credentials to configuring Laravel’s Socialite package.</p>
<h2 id="heading-table-of-contents">Table of Contents</h2>
<ul>
<li><p><a class="post-section-overview" href="#heading-prerequisites">Prerequisites</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-benefits-of-using-google-auth-in-a-laravel-app">Benefits of Using Google Auth in a Laravel App</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-how-to-set-up-laravel-google-login">How to Set Up Laravel Google Login</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-conclusion">Conclusion</a></p>
</li>
</ul>
<h3 id="heading-prerequisites">Prerequisites</h3>
<p>Before you begin, make sure you have the following prerequisites:</p>
<ol>
<li><p>Laravel 11</p>
</li>
<li><p>A Google Developer account.</p>
</li>
<li><p>Basic knowledge of Laravel and authentication.</p>
</li>
<li><p>Composer for managing packages</p>
</li>
</ol>
<p>Once you have these prerequisites ready, you’re all set to dive into integrating Google Authentication into your Laravel app.</p>
<h3 id="heading-benefits-of-using-google-auth-in-a-laravel-app">Benefits of Using Google Auth in a Laravel App</h3>
<p>There are many benefits to this set up. A few of them are:</p>
<ul>
<li><p>Simplified integration with Socialite</p>
</li>
<li><p>Seamless user authentication</p>
</li>
<li><p>Improved security</p>
</li>
<li><p>Customizable user flow</p>
</li>
<li><p>Improved scalability</p>
</li>
<li><p>Solid ecosystem support</p>
</li>
<li><p>Easier maintenance</p>
</li>
</ul>
<h2 id="heading-how-to-set-up-laravel-google-login">How to Set Up Laravel Google Login</h2>
<p>Whether you’re working on a personal project or a production-ready application, following these steps will help you smoothly integrate Google Authentication. Let’s get started.</p>
<h3 id="heading-step-1-set-up-a-google-cloud-project">Step 1: Set up a Google Cloud project</h3>
<p>To use Google Authentication in your Laravel application, first you need to configure a Google Cloud project. Follow these steps to set up your project:</p>
<ol>
<li><p>Visit the <a target="_blank" href="https://console.cloud.google.com/">Google Cloud console</a> and log in with your Google account.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1733208476305/836ff373-152a-4b99-93f3-c7684591e5c7.png" alt="Laravel auth step 1" class="image--center mx-auto" width="1920" height="968" loading="lazy"></p>
</li>
<li><p>Click on the <strong>“Select a Project”</strong> dropdown in the top navigation bar. In the popup, click on <strong>“New Project”</strong> to create a new project and provide the requested details. Then click on <strong>Create project</strong>.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1733208488866/409092b9-20b5-4888-9c15-f22eff4226c8.png" alt="Laravel auth create project" class="image--center mx-auto" width="610" height="396" loading="lazy"></p>
</li>
<li><p>Once you create the project, open the console’s left side menu and select <strong>APIs &amp; Services &gt; Credentials</strong>.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1733208517526/9b7df08c-8e8f-4db4-b297-a3f320edd0f0.png" alt="APIs &amp; Credentials" class="image--center mx-auto" width="660" height="966" loading="lazy"></p>
</li>
<li><p>On the Credentials page, click <strong>Create Credentials</strong> &gt; <strong>OAuth Client ID</strong>.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1733208549370/6dcd64f1-1fe4-4a8b-b37e-f74b38bd694a.png" alt="OAuth Client ID" class="image--center mx-auto" width="1915" height="626" loading="lazy"></p>
</li>
<li><p>If this is your first time creating a client ID, it will ask you to configure the consent screen. You can configure your consent screen by clicking <strong>Configure</strong> <strong>Consent Screen</strong>. If you have already configured the consent screen, you can skip this step.</p>
<ul>
<li><p>Select <strong>External</strong> if your app is for public use, or <strong>Internal</strong> if it’s limited to users within your Google Workspace organization.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1733208660871/53aaf9a2-74d4-4cca-b4e5-9c5cfa9b3066.png" alt="OAuth consent" class="image--center mx-auto" width="666" height="724" loading="lazy"></p>
</li>
<li><p>Fill out the required details, like the <strong>app name</strong>, <strong>user support email</strong>, and any branding information. Click <strong>Save and Continue</strong>.</p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1733208766209/4f458336-9a2a-4238-af89-de954ed2bcf4.png" alt="OAuth Consent Screen" class="image--center mx-auto" width="609" height="753" loading="lazy"></p>
</li>
</ul>
</li>
</ol>
<p>    After configuring the consent screen, return to the <strong>Credentials</strong> page and select <strong>OAuth Client ID</strong> again.</p>
<ol start="6">
<li><p>Choose the <strong>Application Type</strong> as <strong>Web Application</strong> and provide a name for client credentials (for example, Laravel Social Login).</p>
</li>
<li><p>Under <strong>Authorized Redirect URIs</strong>, add the callback URL for your application:</p>
<ul>
<li><p>Example: <code>http://your-app-url.com/callback/google</code></p>
</li>
<li><p>If you're testing locally, use: <a target="_blank" href="http://127.0.0.1:8000/api/auth/google/callback">http://127.0.0.1:8000/api/auth/google/callback</a></p>
<p>  <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1733208840271/b7c309bc-4880-481b-acda-c0fecf4a0ee5.png" alt="OAuth client ID" class="image--center mx-auto" width="604" height="887" loading="lazy"></p>
</li>
</ul>
</li>
<li><p>Click on <strong>Create</strong>, and Google will generate a <strong>Client ID</strong> and <strong>Client Secret</strong> for your project. Save these credentials, as they will be required in the next steps.</p>
</li>
</ol>
<h3 id="heading-step-2-create-a-new-laravel-project-and-install-the-laravel-socialite-package">Step 2: Create a new Laravel project and Install the Laravel Socialite package</h3>
<p>If you don’t have one ready, you can create a new Laravel project using the below command:</p>
<pre><code class="lang-bash">composer create-project --prefer-dist laravel/laravel social-auth-example
</code></pre>
<p>To integrate Google Authentication into a Laravel project, we’ll use <a target="_blank" href="https://laravel.com/docs/11.x/socialite">Laravel Socialite</a>. Socialite is a first-party Laravel package that simplifies OAuth authentication with popular services like Google, Facebook, Twitter, and more.</p>
<p>To install Socialite, open your terminal in the root directory of your Laravel project and run the following command:</p>
<pre><code class="lang-bash">composer require laravel/socialite
</code></pre>
<h3 id="heading-step-3-configure-environment-variables">Step 3: Configure environment variables</h3>
<p>In this step, we will configure our Laravel application to use the Google OAuth credentials that we collected in Step 1.</p>
<p>Locate your <code>.env</code> file in the root directory of your project and add the following environment variables:</p>
<pre><code class="lang-tsx">GOOGLE_CLIENT_ID=your-client-id
GOOGLE_CLIENT_SECRET=your-client-secret
GOOGLE_REDIRECT_URL=http://your-domain.com/auth/google/callback
</code></pre>
<p>Go ahead and replace all placeholders with secrets.</p>
<p>Let's understand each environment variable one by one:</p>
<ul>
<li><p><code>GOOGLE_CLIENT_ID</code>: A unique identifier for your app, provided by Google.</p>
</li>
<li><p><code>GOOGLE_CLIENT_SECRET</code>: A private key used by your app to authenticate itself securely with Google’s API.</p>
</li>
<li><p><code>GOOGLE_REDIRECT_URL</code>: The URL where Google redirects users after they log in. This should match the redirect URI you specified when creating the credentials in Step 1.</p>
</li>
</ul>
<h3 id="heading-step-4-update-the-config-files">Step 4: Update the config files</h3>
<p>To enable Laravel Socialite to use Google OAuth credentials, we need to configure the provider details in the <code>config/services.php</code> file.</p>
<p>In the <code>services.php</code> file, add the following configuration for the Google provider:</p>
<pre><code class="lang-php"><span class="hljs-string">'google'</span> =&gt; [
    <span class="hljs-string">'client_id'</span> =&gt; env(<span class="hljs-string">'GOOGLE_CLIENT_ID'</span>),        <span class="hljs-comment">// Your Google Client ID</span>
    <span class="hljs-string">'client_secret'</span> =&gt; env(<span class="hljs-string">'GOOGLE_CLIENT_SECRET'</span>), <span class="hljs-comment">// Your Google Client Secret</span>
    <span class="hljs-string">'redirect'</span> =&gt; env(<span class="hljs-string">'GOOGLE_REDIRECT_URL'</span>),      <span class="hljs-comment">// Your Google Redirect URL</span>
]
</code></pre>
<h3 id="heading-step-5-create-controllers-and-routes-for-authentication">Step 5: Create controllers and routes for authentication.</h3>
<p>In this step, we will create a controller to handle Google OAuth redirection and callbacks and set up the necessary routes to trigger these methods.</p>
<p>Run the following Artisan command to generate the <code>GoogleAuthController</code> controller:</p>
<pre><code class="lang-php">php artisan make:controller GoogleAuthController
</code></pre>
<p>This will create a controller at <code>app/Http/Controllers/GoogleAuthController.php</code>.</p>
<p>Replace the contents of the newly created <code>GoogleAuthController.php</code> with the following code:</p>
<pre><code class="lang-php"><span class="hljs-meta">&lt;?php</span>

<span class="hljs-keyword">namespace</span> <span class="hljs-title">App</span>\\<span class="hljs-title">Http</span>\\<span class="hljs-title">Controllers</span>;

<span class="hljs-keyword">use</span> <span class="hljs-title">App</span>\\<span class="hljs-title">Http</span>\\<span class="hljs-title">Controllers</span>\\<span class="hljs-title">Controller</span>;
<span class="hljs-keyword">use</span> <span class="hljs-title">App</span>\\<span class="hljs-title">Models</span>\\<span class="hljs-title">User</span>;
<span class="hljs-keyword">use</span> <span class="hljs-title">Laravel</span>\\<span class="hljs-title">Socialite</span>\\<span class="hljs-title">Facades</span>\\<span class="hljs-title">Socialite</span>;
<span class="hljs-keyword">use</span> <span class="hljs-title">Illuminate</span>\\<span class="hljs-title">Support</span>\\<span class="hljs-title">Facades</span>\\<span class="hljs-title">Auth</span>;
<span class="hljs-keyword">use</span> <span class="hljs-title">Illuminate</span>\\<span class="hljs-title">Support</span>\\<span class="hljs-title">Str</span>;
<span class="hljs-keyword">use</span> <span class="hljs-title">Throwable</span>;

<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">GoogleAuthController</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">Controller</span>
</span>{
    <span class="hljs-comment">/**
     * Redirect the user to Google’s OAuth page.
     */</span>
    <span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">redirect</span>(<span class="hljs-params"></span>)
    </span>{
        <span class="hljs-keyword">return</span> Socialite::driver(<span class="hljs-string">'google'</span>)-&gt;redirect();
    }

    <span class="hljs-comment">/**
     * Handle the callback from Google.
     */</span>
    <span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">callback</span>(<span class="hljs-params"></span>)
    </span>{
        <span class="hljs-keyword">try</span> {
            <span class="hljs-comment">// Get the user information from Google</span>
            $user = Socialite::driver(<span class="hljs-string">'google'</span>)-&gt;user();
        } <span class="hljs-keyword">catch</span> (<span class="hljs-built_in">Throwable</span> $e) {
            <span class="hljs-keyword">return</span> redirect(<span class="hljs-string">'/'</span>)-&gt;with(<span class="hljs-string">'error'</span>, <span class="hljs-string">'Google authentication failed.'</span>);
        }

        <span class="hljs-comment">// Check if the user already exists in the database</span>
        $existingUser = User::where(<span class="hljs-string">'email'</span>, $user-&gt;email)-&gt;first();

        <span class="hljs-keyword">if</span> ($existingUser) {
            <span class="hljs-comment">// Log the user in if they already exist</span>
            Auth::login($existingUser);
        } <span class="hljs-keyword">else</span> {
            <span class="hljs-comment">// Otherwise, create a new user and log them in</span>
            $newUser = User::updateOrCreate([
                <span class="hljs-string">'email'</span> =&gt; $user-&gt;email
            ], [
                <span class="hljs-string">'name'</span> =&gt; $user-&gt;name,
                <span class="hljs-string">'password'</span> =&gt; bcrypt(Str::random(<span class="hljs-number">16</span>)), <span class="hljs-comment">// Set a random password</span>
                <span class="hljs-string">'email_verified_at'</span> =&gt; now()
            ]);
            Auth::login($newUser);
        }

        <span class="hljs-comment">// Redirect the user to the dashboard or any other secure page</span>
        <span class="hljs-keyword">return</span> redirect(<span class="hljs-string">'/dashboard'</span>);
    }
}
</code></pre>
<p>This controller contains two functions:</p>
<ol>
<li><p>Redirect: Redirects the user to Google’s OAuth Page.</p>
</li>
<li><p>Callback: Handles the callback from Google and redirects the user to the dashboard or any other secure page.</p>
</li>
</ol>
<p>Let’s define the routes of <code>redirect</code> and <code>callback</code> in the <code>routes/web.php</code> file:</p>
<pre><code class="lang-php"><span class="hljs-keyword">use</span> <span class="hljs-title">App</span>\\<span class="hljs-title">Http</span>\\<span class="hljs-title">Controllers</span>\\<span class="hljs-title">GoogleAuthController</span>;

<span class="hljs-comment">// Route to redirect to Google's OAuth page</span>
Route::get(<span class="hljs-string">'/auth/google/redirect'</span>, [GoogleAuthController::class, <span class="hljs-string">'redirect'</span>])-&gt;name(<span class="hljs-string">'auth.google.redirect'</span>);

<span class="hljs-comment">// Route to handle the callback from Google</span>
Route::get(<span class="hljs-string">'/auth/google/callback'</span>, [GoogleAuthController::class, <span class="hljs-string">'callback'</span>])-&gt;name(<span class="hljs-string">'auth.google.callback'</span>);
</code></pre>
<h3 id="heading-step-6-test-laravel-google-authentication-in-your-project">Step 6: Test Laravel Google authentication in your project.</h3>
<p>We’ve set up Google authentication, so now it’s time to test it to make sure it works seamlessly. In this step, we’ll use a login button that redirects the user to Google’s authentication page and returns them to a protected route upon successful login.</p>
<p>First, we will add the following button that gives users the option to Login With Google:</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"{{ route('auth.google.redirect') }}"</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"btn bg-blue-100 p-3 shadow-sm border rounded-md text-blue-900"</span>&gt;</span>
    Login with Google 
<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
</code></pre>
<p>For testing purposes, I have defined a protected route and a <code>dashboard</code>. This route will only be accessible to authenticated users. After logging in, we will redirect users to this page. Let’s define this route in <code>web.php</code>:</p>
<pre><code class="lang-php">Route::get(<span class="hljs-string">'/dashboard'</span>, <span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params"></span>) </span>{
    <span class="hljs-keyword">return</span> view(<span class="hljs-string">'dashboard'</span>);
})-&gt;middleware(<span class="hljs-string">'auth'</span>)-&gt;name(<span class="hljs-string">'dashboard'</span>);
</code></pre>
<p>Next, create a blade view file for the dashboard at <code>resources/views/dashboard.blade.php</code>. Here’s the contents of the dashboard:</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">html</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">head</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">title</span>&gt;</span>Dashboard<span class="hljs-tag">&lt;/<span class="hljs-name">title</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">head</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">body</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">h1</span>&gt;</span>Dashboard<span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Welcome to the dashboard, {{ auth()-&gt;user()-&gt;name }}!<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span>

<span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span>
</code></pre>
<p>Here, we’re using the <code>auth()-&gt;user()</code> helper to display the logged-in user’s name, which is fetched from the Google account they used to sign in.</p>
<p>Now, Let’s try to log in.</p>
<p>This is the login page:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1732703980184/ecc90d0d-142b-43fe-8457-1b84a54f62d3.png" alt="Login screen - &quot;Login with Google&quot;" class="image--center mx-auto" width="582" height="193" loading="lazy"></p>
<p>Clicking on the button will redirect you to Google’s consent screen:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1732703936372/59f4a5bf-907d-4dda-ba8b-6909cf0a4376.png" alt="Laravel Google auth example - consent screen" class="image--center mx-auto" width="1486" height="923" loading="lazy"></p>
<p>Click on the continue, and you should be logged in to the app. You will be redirected to a screen like below. You can see the welcome message with the user’s name.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1732703886846/17ab7939-34c1-4d82-9527-99afb78cf3eb.png" alt="Laravel auth example - welcome screen" class="image--center mx-auto" width="552" height="196" loading="lazy"></p>
<p>That’s it! You’ve successfully implemented and tested Google Authentication in your Laravel project. Now your users can sign in using their Google accounts, enhancing both security and convenience.</p>
<p>To refer to the full implementation, you can find the complete source code for this project on GitHub here: <a target="_blank" href="https://github.com/DeepKumbhare85/social-auth-example"><strong>Google Login Integration for Laravel</strong> - GitHub Repository</a></p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>You’ve now set up Google authentication in your Laravel application using Socialite! You can extend this method to include other OAuth providers like Facebook, Twitter, or GitHub by adding additional configurations to the <code>config/services.php</code> file.</p>
<p>Google OAuth integration is a common feature for modern web applications, and Laravel Socialite makes it easy to implement.</p>
<p>In case you need more social login options like GitHub, Twitter, and Facebook, then you can consider ready-to-use Laravel SaaS boilerplates.</p>
<p>Most of the pre-built Laravel SaaS boilerplates offer seamless integration with popular platforms such as Google, GitHub, Facebook, and Twitter. For example, there are some premium and open source resources like:</p>
<ul>
<li><p><a target="_blank" href="https://demos.themeselection.com/jetship-laravel-starter-kit/">Laravel Starter Kit</a> (Premium)</p>
<ul>
<li><p>Based on Tailwind CSS</p>
</li>
<li><p>Comes with One Click Magic Link Setup</p>
</li>
<li><p>Supports various authentication methods including the traditional email/password login</p>
</li>
<li><p>2FA Authentication</p>
</li>
</ul>
</li>
<li><p><a target="_blank" href="https://github.com/miracuthbert/saas-boilerplate">SaaS Boilerplate</a> (Open Source)</p>
<ul>
<li><p>Single Database Multi-tenancy</p>
</li>
<li><p>Developer Panel</p>
</li>
<li><p>Manage Personal Access Tokens</p>
</li>
</ul>
</li>
<li><p><a target="_blank" href="https://github.com/fumeapp/laranuxt">Laranuxt</a> (Open Source)</p>
<ul>
<li><p>Nuxt UI a collection of components built by the NuxtJS team, powered by Tailwind CSS</p>
</li>
<li><p>Authentication library to assist with user sessions and logging in/out</p>
</li>
<li><p>Example Authentication Middleware</p>
</li>
</ul>
</li>
<li><p><a target="_blank" href="https://github.com/alefesouza/laravel-vue-boilerplate">Laravel Vue Boilerplate</a> (Open Source)</p>
<ul>
<li><p>WebSockets with Laravel Echo and Pusher.</p>
</li>
<li><p>Workbox for better PWA development.</p>
</li>
<li><p>Laravel GraphQL</p>
</li>
</ul>
</li>
</ul>
<p>Using one of these Laravel SaaS boilerplates can speed up your workflows as you don’t need to set up everything from scratch.</p>
<p>Special thanks to <a target="_blank" href="https://github.com/DeepKumbhare85">Deep Kumbhare</a>, an experienced Laravel Developer and enthusiast, who has helped me with preparing this article.</p>
<p>I hope this article helps you with setting up Google Login with Laravel.</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
