{"id":13215,"date":"2020-05-09T11:51:06","date_gmt":"2020-05-09T11:51:06","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=13215"},"modified":"2021-11-08T10:13:32","modified_gmt":"2021-11-08T10:13:32","slug":"how-to-add-sign-in-with-google-feature-in-laravel","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/how-to-add-sign-in-with-google-feature-in-laravel\/","title":{"rendered":"How to Add Sign-in with Google feature in Laravel."},"content":{"rendered":"\n<p>In this tutorial, we\u2019re going learn how to add authentication via Google to a Laravel app. In Short, How to add <strong>Sign-in with Google<\/strong> feature in our Laravel Project. For that, we use Laravel Socialite Package which is officially provided by Laravel (you can check Documentation <a href=\"https:\/\/laravel.com\/docs\/5.8\/socialite\" target=\"_blank\" rel=\"noopener\">here<\/a>.) <\/p>\n\n\n\n<p>Socialite supports Facebook, Twitter, LinkedIn, Google, GitHub and Bitbucket.<\/p>\n\n\n\n<p class=\"has-vivid-red-color has-very-light-gray-background-color has-text-color has-background\"><strong>Note :-<\/strong> <strong>For using Socialite Package, you must have Laravel 5.4 or an Upper version of Laravel in your project. (Recommended 5.5 and above.)<\/strong><\/p>\n\n\n\n<p>I&#8217;m using Laravel 5.8 (version) in my project. So Follow the below Steps to add <strong>Sign-in with Google<\/strong> Functionality in your existing Laravel Project.<\/p>\n\n\n\n<p><strong><span class=\"has-inline-color has-vivid-red-color\">Step 1 :-<\/span> <\/strong> Install Socialite using composer by below Command.<\/p>\n\n\n\n<p class=\"has-text-align-center has-very-light-gray-background-color has-background\"><strong>composer require laravel\/socialite<\/strong><\/p>\n\n\n\n<p><strong><span class=\"has-inline-color has-vivid-red-color\">Step 2 :-<\/span><\/strong> Go to <strong>config\/services.php<\/strong> and add a new Package as below.<\/p>\n\n\n\n<p class=\"has-very-light-gray-background-color has-background\"><strong>&#8216;google&#8217; =&gt; [<br>       &#8216;client_id&#8217; =&gt; &#8216;GOOGLE_CLIENT_ID&#8217;,<br>       &#8216;client_secret&#8217; =&gt; &#8216;GOOGLE_CLIENT_SECRET&#8217;,<br>       &#8216;redirect&#8217; =&gt; &#8216;http:\/\/your-callback-url&#8217;,<br>  ],<\/strong><\/p>\n\n\n\n<p>We\u2019ll obtain <strong>client_id<\/strong>,&nbsp;<strong>client_secret<\/strong>&nbsp;and&nbsp;<strong>redirect&nbsp;URL<\/strong> in next Step.<\/p>\n\n\n\n<p>Since we added a new package, make sure to add to the service <strong>providers<\/strong> array in&nbsp;<strong>config\/app.php<\/strong> (In <strong>providers<\/strong> array)<\/p>\n\n\n\n<p class=\"has-very-light-gray-background-color has-background\"><strong>&#8216;providers&#8217; =&gt; [<br>           \/\/ Other service providers\u2026  <\/strong><br><strong>                                                                                       Laravel\\Socialite\\SocialiteServiceProvider::class,<br>],<\/strong><\/p>\n\n\n\n<p>Add an <strong>alias<\/strong> in <strong>config\/app.php<\/strong>, so it is easier to reference later.<\/p>\n\n\n\n<p class=\"has-text-align-center has-very-light-gray-background-color has-background\"><strong>&#8216;Socialite&#8217; =&gt; Laravel\\Socialite\\Facades\\Socialite::class,<\/strong><\/p>\n\n\n\n<p><strong><span class=\"has-inline-color has-vivid-red-color\">Step 3 :-<\/span><\/strong>  Now, Create your app on Google.<\/p>\n\n\n\n<p><span class=\"has-inline-color has-vivid-purple-color\"><strong>( i )  Create a Project<\/strong> :- <\/span>Go to   <a href=\"https:\/\/console.developers.google.com\/projectcreate\" target=\"_blank\" rel=\"noopener\">https:\/\/console.developers.google.com\/projectcreate<\/a>    and create a new project as shown below.<br> <br><img loading=\"lazy\" decoding=\"async\" width=\"560\" height=\"403\" class=\"wp-image-13232\" style=\"width: 560px;\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/Screenshot-313.png\" alt=\"\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/Screenshot-313.png 554w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/Screenshot-313-300x216.png 300w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><\/p>\n\n\n\n<p><span class=\"has-inline-color has-vivid-purple-color\"><strong>( ii )<\/strong>  <strong>Create credentials<\/strong> :-<\/span> After creating a new project, create credentials.<\/p>\n\n\n\n<p>First, click on <strong>Create credentials<\/strong> and then select <strong>OAuth client ID<\/strong>. See the below image.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"422\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/Untitled-2-copy.jpg\" alt=\"\" class=\"wp-image-13234\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/Untitled-2-copy.jpg 1000w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/Untitled-2-copy-300x127.jpg 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/Untitled-2-copy-768x324.jpg 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p>After that, Select <strong>Web application<\/strong> and fill <strong><span class=\"has-inline-color has-vivid-red-color\">Name<\/span><\/strong>, <strong><span class=\"has-inline-color has-vivid-red-color\">your_web_URL<\/span><\/strong> and <strong><span class=\"has-inline-color has-vivid-red-color\">redirect_URL<\/span><\/strong> and then click on create. See the below image for help.<\/p>\n\n\n\n<p>Redirect URL is like  <span class=\"has-inline-color has-vivid-red-color\"><strong>your_web_URL\/login\/google\/callback<\/strong><\/span><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/screencapture-console-developers-google-apis-credentials-oauthclient-2020-05-09-16_38_11.png\" alt=\"\" class=\"wp-image-13243\" width=\"583\" height=\"724\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/screencapture-console-developers-google-apis-credentials-oauthclient-2020-05-09-16_38_11.png 634w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/screencapture-console-developers-google-apis-credentials-oauthclient-2020-05-09-16_38_11-241x300.png 241w\" sizes=\"auto, (max-width: 583px) 100vw, 583px\" \/><\/figure>\n\n\n\n<p>After Clicking on create a Popup Appears with <span class=\"has-inline-color has-vivid-red-color\"><strong>Your_Client_ID<\/strong><\/span> and <span class=\"has-inline-color has-vivid-red-color\"><strong>Your_Client_Secret<\/strong><\/span>. See the Below Image.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"667\" height=\"496\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/Screenshot-317.png\" alt=\"\" class=\"wp-image-13241\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/Screenshot-317.png 667w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/Screenshot-317-300x223.png 300w\" sizes=\"auto, (max-width: 667px) 100vw, 667px\" \/><\/figure>\n\n\n\n<p> just <strong>copy <\/strong>and <strong>paste <\/strong>it in the <strong>config\/services.php<\/strong> as mentioned in <strong>Step 2<\/strong>. See the below image.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"881\" height=\"114\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/Screenshot-319.png\" alt=\"\" class=\"wp-image-13246\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/Screenshot-319.png 881w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/Screenshot-319-300x39.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2020\/05\/Screenshot-319-768x99.png 768w\" sizes=\"auto, (max-width: 881px) 100vw, 881px\" \/><\/figure>\n\n\n\n<p><strong><span class=\"has-inline-color has-vivid-red-color\">Step 4 :-<\/span><\/strong>  Handle the route. Go to <strong><span style=\"color:#2228c5\" class=\"has-inline-color\">routes\/web.php<\/span><\/strong>. See the below code.<\/p>\n\n\n\n<p class=\"has-very-light-gray-background-color has-background\"><strong>Route::get(&#8216;login\/google&#8217;, &#8216;Auth\\LoginController@redirectToProvider&#8217;);<br>Route::get(&#8216;login\/google\/callback&#8217;, &#8216;Auth\\LoginController@handleProviderCallback&#8217;);<\/strong><\/p>\n\n\n\n<p><strong><span class=\"has-inline-color has-vivid-red-color\">Step 5 :-<\/span><\/strong>  Now go to loginController and paste the below code.<\/p>\n\n\n\n<p class=\"has-very-light-gray-background-color has-background\"><strong>use Socialite;<\/strong><br><br><strong>public function redirectToProvider()<br>{<br>return Socialite::driver(&#8216;google&#8217;)-&gt;stateless()-&gt;redirect();<br>}<\/strong><br><br><strong>public function handleProviderCallback()<br>{<br>$user = Socialite::driver(&#8216;google&#8217;)-&gt;user();<br>        \/\/ $user-&gt;token; <span class=\"has-inline-color has-vivid-red-color\">(return as your need)<\/span><br>}<\/strong><\/p>\n\n\n\n<p><strong><span class=\"has-inline-color has-vivid-red-color\">Step 6 :-<\/span><\/strong>  Now, we make <strong>Sign-in with Google<\/strong> button. Just copy and paste the below code in your login page.<\/p>\n\n\n\n<script src=\"https:\/\/gist.github.com\/SushantSinghRajput03\/b48096e57e16586523308a1ab5854ed9.js\"><\/script>\n\n\n\n<p><strong><span class=\"has-inline-color has-vivid-red-color\">Note :-<\/span><\/strong> You can use fa-fa icon of google instead of <strong>google.svg<\/strong> or download it by searching on google by Keyword <strong>google SVG icon download<\/strong>.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Thats All<\/strong>.     <strong>???<\/strong><\/p>\n\n\n\n<p><span class=\"has-inline-color has-vivid-red-color\"><strong>How to Add Sign-in with Facebook feature in Laravel<\/strong> &#8211; (<strong><a target=\"_blank\" href=\"https:\/\/www.devopsschool.com\/blog\/how-to-add-sign-in-with-facebook-feature-in-laravel\/\" rel=\"noopener noreferrer\">Click Here<\/a><\/strong>)<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n<div class=\"epyt-gallery\" data-currpage=\"1\" id=\"epyt_gallery_15666\"><iframe loading=\"lazy\"  id=\"_ytid_12639\"  width=\"760\" height=\"427\"  data-origwidth=\"760\" data-origheight=\"427\" src=\"https:\/\/www.youtube.com\/embed\/?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=1&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;\" class=\"__youtube_prefs__  no-lazyload\" title=\"YouTube player\"  data-epytgalleryid=\"epyt_gallery_15666\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe><div class=\"epyt-gallery-list\"><div>Sorry, there was a YouTube error.<\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>In this tutorial, we\u2019re going learn how to add authentication via Google to a Laravel app. In Short, How to add Sign-in with Google feature in our Laravel Project. For&#8230; <\/p>\n","protected":false},"author":19,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[5201],"tags":[6086,6092,6093,5596,6091,5203,6087,5965,6090,6085,6089,3365],"class_list":["post-13215","post","type-post","status-publish","format-standard","hentry","category-laravel","tag-authentication-via-google","tag-client-id","tag-client-secret","tag-composer","tag-google-callback","tag-laravel","tag-laravel-socialite","tag-laravel-project","tag-oauth-client","tag-sign-in-with-google","tag-socialite-package","tag-web-application"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/13215","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=13215"}],"version-history":[{"count":62,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/13215\/revisions"}],"predecessor-version":[{"id":24846,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/13215\/revisions\/24846"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=13215"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=13215"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=13215"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}