{"id":26220,"date":"2021-06-12T17:11:00","date_gmt":"2021-06-12T14:11:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26220"},"modified":"2021-10-17T18:19:36","modified_gmt":"2021-10-17T15:19:36","slug":"google-i-sisselogimine-laravelis-kasutades-teenust-laravel-socialite","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/et\/google-i-sisselogimine-laravelis-kasutades-teenust-laravel-socialite\/","title":{"rendered":"Google&#8217;i sisselogimine Laravelis, kasutades teenust Laravel Socialite"},"content":{"rendered":"<p>Hiljuti avaldasin artikli <a href=\"https:\/\/themewp.inform.click\/et\/sisene-laraveli-kaudu-linkediniga-kasutades-teenust-laravel-socialite\/\" title=\"Logi sisse LinkedIniga, kasutades Laraveli suhtlusv\u00f5rgustikku,\" >Logi sisse LinkedIniga, kasutades Laraveli suhtlusv\u00f5rgustikku,<\/a> ja \u00fcks meie lugejatest k\u00fcsis Google Logi sisse Laraveli integreerimise kohta. Google&#8217;i sisselogimine on ka \u00fcks populaarsemaid platvorme, mida veebisaidil sotsiaalse sisselogimise jaoks kasutatakse.<\/p>\n<p>Kui lubate kasutajatel oma veebisaidil oma sotsiaalse profiiliga sisse logida, j\u00e4tate nende e-posti aadressi kinnitamise protsessi vahele. Teie kasutajad ei pea e-posti aktiveerimisprotsessi j\u00e4lgima. V\u00f5ime tugineda sotsiaalsetele saitidele, kuna nad on juba oma platvormil kasutajaid kinnitanud. See annab teie kasutajatele parema kasutuskogemuse, kuna neil pole vaja meeles pidada oma veebisaidi sisselogimisandmeid ja s\u00e4\u00e4stab teid ka kontrollivoo jaoks koodide lisamisest. See on olukord, kus v\u00f5idavad k\u00f5ik.<\/p>\n<p>Selles artiklis uurime samm-sammult juhendit Google&#8217;i sisselogimise lisamiseks Laravelisse Laraveli suhtlusportaali abil. Laraveli seltskonnategelane tegeleb OAuthi vooga sotsiaalse sisselogimise jaoks kulisside taga. See pakett kiirendab sotsiaalse sisselogimise integreerimist Laraveli.<\/p>\n<p>Selle \u00f5petuse jaoks kasutan v\u00e4rsket Laraveli installi, nii et k\u00e4ivitage j\u00e4rgmine k\u00e4sk, mis installib teie jaoks Laraveli:<\/p>\n<pre><code>composer create-project --prefer-dist laravel\/laravel googlelogin<\/code><\/pre>\n<p>Laraveli installimisel looge andmebaas ja lisage <code>.env<\/code>faili oma andmebaasi mandaadid. Kuna lisame rakendusse sotsiaalse sisselogimise, lisan kasutaja migreerimisfailile veel 2 veergu ja muutsin selle koodi veidi.<\/p>\n<p>Avage oma kasutaja migratsioonifail ja lisage <code>up<\/code>meetodile allolev kood .<\/p>\n<pre><code>\/**\n\u00a0* Run the migrations.\n\u00a0*\n\u00a0* @return void\n\u00a0*\/\npublic function up()\n{\n\u00a0\u00a0\u00a0\u00a0Schema::create('users', function (Blueprint $table) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;bigIncrements('id');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('name');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('email')-&gt;nullable();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;timestamp('email_verified_at')-&gt;nullable();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('password')-&gt;nullable();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('provider');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;string('provider_id');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;rememberToken();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;timestamps();\n\u00a0\u00a0\u00a0\u00a0});\n}<\/code><\/pre>\n<p>\u00dclalolevas koodis olen lisanud 2 veergu <code>provider<\/code>ja <code>provider_id<\/code>mis hoiavad vastavalt v\u00e4\u00e4rtusi &#8216;google&#8217; ja kasutaja Google&#8217;i profiili id. Looge kasutajate tabel, k\u00e4ivitades k\u00e4su migreerimine.<\/p>\n<pre><code>php artisan migrate<\/code><\/pre>\n<p>Need 2 veergu peate lisama ka kasutajamudelisse.<\/p>\n<p><strong>app \/ User.php<\/strong><\/p>\n<pre><code>\/**\n\u00a0* The attributes that are mass assignable.\n\u00a0*\n\u00a0* @var array\n\u00a0*\/\nprotected $fillable = [\n\u00a0\u00a0\u00a0\u00a0'name', 'email', 'password', 'provider', 'provider_id',\n];<\/code><\/pre>\n<h3>Looge Google&#8217;i rakendus ja hankige oma volitused<\/h3>\n<p>J\u00e4rgmisena peame looma projekti Google API-de konsoolil. Kasutajate jaoks OAuthi protsessi l\u00f5puleviimiseks vajame rakenduse kliendi ID-d ja kliendisaladust.<\/p>\n<p>Google&#8217;i projekti loomiseks ja volituste saamiseks j\u00e4rgige alltoodud samme. \u00d5petuse huvides kasutan kohaliku serveri URL-i. Saate seda URL-i oma n\u00f5uete j\u00e4rgi kohandada.<\/p>\n<ul>\n<li>Minge <a href=\"https:\/\/console.developers.google.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Google&#8217;i arendajakonsoolile<\/a>.<\/li>\n<li>Kl\u00f5psake rippmen\u00fc\u00fcl ja looge uus projekt, kl\u00f5psates nuppu (+). Teise v\u00f5imalusena saate valida ka olemasoleva projekti.<\/li>\n<li>Valige projekti juhtpaneelil k\u00fclgribalt Mandaadid.<\/li>\n<li>Kl\u00f5psake vahekaardi Mandaadid rippmen\u00fc\u00fcl Loo mandaadid ja valige OAuthi kliendi ID.<\/li>\n<li>Valige rakenduse t\u00fc\u00fcbist veebirakendus. Sisestage URL-i volitatud \u00fcmbersuunamise URL-id <code>http:\/\/localhost:8000\/google\/callback<\/code>.<\/li>\n<\/ul>\n<p>Kui olete selle salvestanud, saate h\u00fcpikakna koos oma kliendi ID ja kliendisaladusega. Kopeerige need v\u00f5tmed, mida vajame m\u00f5ne hetkega.<\/p>\n<h3>Loo marsruudid ja kontroller<\/h3>\n<p>Olete oma API-v\u00f5tmetega valmis. N\u00fc\u00fcd tuleb edasi liikumiseks luua marsruudid, labafail ja kontroller. Looge <code>LoginController<\/code>k\u00e4su abil:<\/p>\n<pre><code>php artisan make:controller LoginController<\/code><\/pre>\n<p>P\u00e4rast seda looge nimega labafail <code>login.blade.php<\/code>ja lisage sellele allpool olev HTML.<\/p>\n<pre><code>&lt;a href=\"{{ url('\/login\/google') }}\"&gt;\n\u00a0\u00a0\u00a0\u00a0{{ __('Login with Google') }}\n&lt;\/a&gt;<\/code><\/pre>\n<p>Kutsuge seda vaadet <code>index<\/code>meetodilt <code>LoginController<\/code>.<\/p>\n<pre><code>public function index()\n{\n\u00a0\u00a0\u00a0\u00a0return view('login');\n}<\/code><\/pre>\n<p>Selle vaate helistamiseks peate lisama selle marsruudi. Lisame veel m\u00f5ned marsruudid, mis vajavad juhendaja j\u00e4rgmist osa.<\/p>\n<pre><code>Route::get('login', 'LoginController@index');\nRoute::get('login\/{provider}', 'LoginController@redirectToProvider');\nRoute::get('{provider}\/callback', 'LoginController@handleProviderCallback');\nRoute::get('\/home', function() {\n\u00a0\u00a0\u00a0\u00a0return 'User is logged in';\n});<\/code><\/pre>\n<p>Pange t\u00e4hele, et lisasin <code>home<\/code>marsruudi. Kui kasutaja Google&#8217;iga sisse logib, suunan nad <code>home<\/code>marsruudile. Hoian seda lihtsalt demo eesm\u00e4rgil. Peaksite selle marsruudi millekski muuks muutma.<\/p>\n<h3>Google&#8217;i sisselogimine Laravelis, kasutades teenust Laravel Socialite<\/h3>\n<p>Siiani oleme sotsiaalse sisselogimise jaoks vajaliku p\u00f5hiseadistusega valmis. N\u00fc\u00fcd. on aeg installida <a href=\"https:\/\/laravel.com\/docs\/master\/socialite\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Laraveli Socialite&#8217;i<\/a> raamatukogu. Installige see, k\u00e4ivitades terminalis alloleva k\u00e4su.<\/p>\n<pre><code>composer require laravel\/socialite<\/code><\/pre>\n<p>Teegi installimisel avage <code>config\/services.php<\/code>ja lisage Google&#8217;i konfiguratsioon j\u00e4rgmiselt:<\/p>\n<pre><code>'google' =&gt; [\n\u00a0\u00a0\u00a0\u00a0'client_id'\u00a0\u00a0\u00a0\u00a0 =&gt; env('GOOGLE_CLIENT_ID'),\n\u00a0\u00a0\u00a0\u00a0'client_secret' =&gt; env('GOOGLE_CLIENT_SECRET'),\n\u00a0\u00a0\u00a0\u00a0'redirect'\u00a0\u00a0\u00a0\u00a0\u00a0 =&gt; env('GOOGLE_REDIRECT_URL'),\n],<\/code><\/pre>\n<p>Kuna me kasutasime <code>env<\/code>volituste saamiseks meetodit, peame need volitused <code>.env<\/code>faili lisama .<\/p>\n<pre><code>GOOGLE_CLIENT_ID=YOUR_CLIENT_ID\nGOOGLE_CLIENT_SECRET=YOUR_CLIENT_SECRET\nGOOGLE_REDIRECT_URL=http:\/\/localhost:8000\/google\/callback<\/code><\/pre>\n<p>Asendage kohat\u00e4ited tegelike v\u00e4\u00e4rtustega. L\u00f5puks peame lisama <code>LoginController.php<\/code>faili koodi, mis suunab kasutaja Google&#8217;i sisselogimislehele ja vastutasuks haldab vastust. Selles failis kirjutame funktsiooni, mis suunab kasutaja Google&#8217;i sisselogimislehele ja edukal autoriseerimisel sisestab see kasutajaandmed andmebaasi ja logib kasutaja sisse.<\/p>\n<p><strong>LoginController.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\u00a0\nnamespace AppHttpControllers;\n\u00a0\u00a0\nuse IlluminateHttpRequest;\nuse Socialite;\nuse AppModelsUser;\nuse Auth;\n\u00a0\u00a0\nclass LoginController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Where to redirect users after login.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @var string\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0protected $redirectTo = '\/home';\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Call the view\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function index()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return view('login');\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Redirect the user to the Google authentication page.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return Response\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function redirectToProvider($provider)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return Socialite::driver($provider)-&gt;redirect();\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Obtain the user information from Google.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return Response\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function handleProviderCallback($provider)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$user = Socialite::driver($provider)-&gt;user();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$authUser = $this-&gt;findOrCreateUser($user, $provider);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Auth::login($authUser, true);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return redirect($this-&gt;redirectTo);\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* If a user has registered before using social auth, return the user\n\u00a0\u00a0\u00a0\u00a0\u00a0* else, create a new user object.\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param\u00a0 $user Socialite user object\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param $provider Social auth provider\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return\u00a0 User\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function findOrCreateUser($user, $provider)\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$authUser = User::where('provider_id', $user-&gt;id)-&gt;first();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if ($authUser) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return $authUser;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return User::create([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'name'\u00a0\u00a0\u00a0\u00a0 =&gt; $user-&gt;name,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'email'\u00a0\u00a0\u00a0 =&gt; $user-&gt;email,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'provider' =&gt; $provider,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'provider_id' =&gt; $user-&gt;id\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Kontrollerifailis kontrollime, kas kasutaja <code>provider_id<\/code>on juba olemas v\u00f5i mitte. Kui see on olemas, tagastage praegune kasutajaeksemplar, muidu sisestage see kasutajate tabelisse ja logige kasutaja sisse.<\/p>\n<p>Loodan, et saite Socialite paketi abil teada Laraveli Google&#8217;i sisselogimisest. Tahaksin kuulda teie m\u00f5tteid ja ettepanekuid allpool olevas kommentaaride jaotises.<\/p>\n<h4>seotud artiklid<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/sisene-laraveli-kaudu-linkediniga-kasutades-teenust-laravel-socialite\/\" title=\"Sisene Laraveli kaudu LinkedIniga, kasutades teenust Laravel Socialite\">Sisene Laraveli kaudu LinkedIniga, kasutades teenust Laravel Socialite<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/logige-sisse-twitteris-laravelis-kasutades-teenust-laravel-socialite\/\" title=\"Logige sisse Twitteris Laravelis, kasutades teenust Laravel Socialite\">Logige sisse Twitteris Laravelis, kasutades teenust Laravel Socialite<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kuidas-lisada-google-oauthi-sisselogimist-veebisaidile-koos-php-ga\/\" title=\"Kuidas lisada Google OAuthi sisselogimist veebisaidile koos PHP-ga\">Kuidas lisada Google OAuthi sisselogimist veebisaidile koos PHP-ga<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Selles artiklis uurime rakenduses Laravel Socialite rakendust Google Login. Sotsiaalse sisselogimise kasutamine annab l\u00f5ppkasutajale parema kasutuskogemuse<\/p>\n","protected":false},"author":1,"featured_media":20248,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[498],"tags":[842],"class_list":["post-26220","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-5","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/26220","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/comments?post=26220"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/26220\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media\/20248"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media?parent=26220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/categories?post=26220"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/tags?post=26220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}