{"id":23333,"date":"2021-04-27T13:56:00","date_gmt":"2021-04-27T10:56:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=23333"},"modified":"2021-10-17T21:38:13","modified_gmt":"2021-10-17T18:38:13","slug":"sosiaalinen-kirjautumisjarjestelma-laravel-socialiten-avulla","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/sosiaalinen-kirjautumisjarjestelma-laravel-socialiten-avulla\/","title":{"rendered":"Sosiaalinen kirjautumisj\u00e4rjestelm\u00e4 Laravel Socialiten avulla"},"content":{"rendered":"<p>Luotto: T\u00e4m\u00e4 artikkeli on innoittamana t\u00e4st\u00e4 viestist\u00e4 <a href=\"https:\/\/scotch.io\/tutorials\/laravel-social-authentication-with-socialite\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Laravel Social Authentication with Socialite<\/a><\/p>\n<p>Etsitk\u00f6 sosiaalisen sis\u00e4\u00e4nkirjautumisen j\u00e4rjestelm\u00e4\u00e4 Laravel-verkkosivustollasi? Sallimalla sosiaalisen kirjautumisen k\u00e4ytt\u00e4jien ei tarvitse rekister\u00f6ity\u00e4 verkkosivustollesi. Se s\u00e4\u00e4st\u00e4\u00e4 my\u00f6s paljon ty\u00f6t\u00e4, kuten aktivointilinkin l\u00e4hett\u00e4minen, s\u00e4hk\u00f6postitilin tarkistaminen. T\u00e4ss\u00e4 artikkelissa tutkitaan, miten sosiaalinen sis\u00e4\u00e4nkirjautumisj\u00e4rjestelm\u00e4 lis\u00e4t\u00e4\u00e4n Laravel-seuran avulla.<\/p>\n<p><a href=\"https:\/\/github.com\/laravel\/socialite\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Laravel Socialite<\/a> -kirjasto tarjoaa OAuth-todennuksen Facebookin, Twitterin, Googlen, LinkedInin, GitHubin ja Bitbucketin avulla. Meid\u00e4n on asennettava t\u00e4m\u00e4 kirjasto Laravel-verkkosivustollemme, m\u00e4\u00e4ritett\u00e4v\u00e4 se, haettava API-avaimet sosiaalisesta sivustosta ja olemme hyvi\u00e4.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20876-60823669e70f3.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20876-60823669e70f3.png\" alt=\"Sosiaalinen kirjautumisj\u00e4rjestelm\u00e4 Laravel Socialiten avulla\" ><\/a><\/p>\n<h3>Luo k\u00e4ytt\u00e4jien taulukko<\/h3>\n<p>Sosiaalisen sis\u00e4\u00e4nkirjautumisj\u00e4rjestelm\u00e4n toteuttamiseksi meid\u00e4n on luotava k\u00e4ytt\u00e4jien taulukko, joka tallentaa sosiaalisen sivuston tarjoamat tiedot.<\/p>\n<p>Jos sinulla on uusi Laravel-asennus, avaa komentorivity\u00f6kalu projektin juurihakemistossa ja suorita komento <code>php artisan make:auth<\/code>. T\u00e4m\u00e4 komento luo todennuksen ohjaimet, kuten LoginController, RegisterController jne., Jotka sijaitsevat hakemistossa app \/ Http \/ Controllers \/ Auth. Se luo my\u00f6s n\u00e4kym\u00e4t login.blade.php, register.blade.php resurssien \/ n\u00e4kym\u00e4n \/ todennushakemistoon.<\/p>\n<p>Avaa seuraavaksi k\u00e4ytt\u00e4jien siirtotaulukko. Muutamme t\u00e4t\u00e4 oletussiirtoa ja lis\u00e4t\u00e4\u00e4n viel\u00e4 kaksi saraketta, joita kutsutaan palveluntarjoajaksi ja tarjoajan tunnukseksi.<\/p>\n<pre><code>public function up()\n{\n\u00a0\u00a0\u00a0\u00a0Schema::create('users', function (Blueprint $table) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$table-&gt;increments('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;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>Kuten n\u00e4ette, asetamme s\u00e4hk\u00f6posti- ja salasanasarakkeet mit\u00e4t\u00f6it\u00e4viksi. Miksi? Kun k\u00e4yt\u00e4mme sosiaalista kirjautumistodennusta, ei voida taata k\u00e4ytt\u00e4j\u00e4n s\u00e4hk\u00f6postitunnuksen saamista. Ja salasanaa ei my\u00f6sk\u00e4\u00e4n tarvita t\u00e4llaisessa tapauksessa. Joten pid\u00e4mme s\u00e4hk\u00f6postin ja salasanan mit\u00e4t\u00f6it\u00e4viss\u00e4. Sarakepalveluntarjoaja tallentaa sosiaalisen sivuston nimen, kuten facebook, twitter jne. Sarake Provider_id tallentaa k\u00e4ytt\u00e4j\u00e4n sosiaalisen sivuston sosiaalisen tunnuksen.<\/p>\n<p>Kun olet muokannut k\u00e4ytt\u00e4j\u00e4n siirtoa yll\u00e4 olevan mukaisesti, suorita komento <code>php artisan migrate<\/code>. Se luo tietokantaan taulukon nimelt\u00e4 k\u00e4ytt\u00e4j\u00e4t.<\/p>\n<p>Luultavasti siirtokomennon suorittamisen aikana saat jonkin verran merkkien pituuteen liittyv\u00e4\u00e4 virhett\u00e4. Jos n\u00e4in on, avaa sitten AppServiceProvider.php-tiedosto app \/ Providers-hakemistosta. T\u00e4ss\u00e4 tiedostossa meid\u00e4n on m\u00e4\u00e4ritett\u00e4v\u00e4 oletusmerkkijonon pituus tietokantataulukon sarakkeille.<\/p>\n<p>Tiedosto AppServiceProvider.php<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppProviders;\n\u00a0\nuse IlluminateSupportServiceProvider;\nuse IlluminateSupportFacadesSchema;\n\u00a0\nclass AppServiceProvider extends ServiceProvider\n{\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Bootstrap any application services.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return void\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function boot()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Schema::defaultStringLength(255);\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Register any application services.\n\u00a0\u00a0\u00a0\u00a0\u00a0*\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return void\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\u00a0\u00a0\u00a0\u00a0public function register()\n\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<h3>K\u00e4ytt\u00e4j\u00e4n malli<\/h3>\n<p>Oletusarvoisesti Laravel sis\u00e4lt\u00e4\u00e4 AppUser Eloquent -mallin sovellushakemistossasi. Avaa User.php sovelluskansiosta. Lis\u00e4\u00e4 kaksi sarakkeiden tarjoajaa szolg\u00e1ltajan_tunnus $ t\u00e4ytett\u00e4v\u00e4\u00e4n muuttujaan.<\/p>\n<pre><code>protected $fillable = [\n\u00a0\u00a0\u00a0\u00a0'name', 'email', 'password', 'provider', 'provider_id',\n];<\/code><\/pre>\n<h3>Asenna ja m\u00e4\u00e4rit\u00e4 Laravel Socialite<\/h3>\n<p>T\u00e4m\u00e4n kirjaston asentamiseksi sinulla on oltava <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">s\u00e4velt\u00e4j\u00e4<\/a> asennettuna j\u00e4rjestelm\u00e4\u00e4n.<\/p>\n<p>Suorita alla oleva komento komentorivity\u00f6kalussa.<\/p>\n<p><code>composer require laravel\/socialite<\/code><\/p>\n<p>Kun olet asentanut kirjaston, rekister\u00f6i LaravelSocialiteSocialiteServiceProvider config \/ app.php-m\u00e4\u00e4ritystiedostoon.<\/p>\n<pre><code>'providers' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\/\/ Other service providers...\n\u00a0\n\u00a0\u00a0\u00a0\u00a0LaravelSocialiteSocialiteServiceProvider::class,\n],<\/code><\/pre>\n<p>Lis\u00e4\u00e4 samassa tiedostossa config \/ app.php aliaksitaulukon alle Socialite-julkisivu.<\/p>\n<pre><code>'Socialite' =&gt; LaravelSocialiteFacadesSocialite::class,<\/code><\/pre>\n<p>Nyt on aika rekister\u00f6id\u00e4 hakemuksesi sosiaalisella sivustolla. Oletetaan esimerkiksi, ett\u00e4 haluat ottaa k\u00e4ytt\u00f6\u00f6n Facebook-kirjautumistodennuksen. Joten mene eteenp\u00e4in ja <a href=\"https:\/\/developers.facebook.com\/docs\/apps\/register\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">luo sovellus Facebookiin<\/a>.<\/p>\n<p>Kun olet valmis sovellustunnuksella, Facebook-sovelluksesi sovelluksen salaisuudella, avaa tiedosto config \/ services.php ja lis\u00e4\u00e4 siihen alla oleva koodi.<\/p>\n<pre><code>'facebook' =&gt; [\n\u00a0\u00a0\u00a0\u00a0'client_id' =&gt; env('FB_APP_ID'),\n\u00a0\u00a0\u00a0\u00a0'client_secret' =&gt; env('FB_APP_SECRET'),\n\u00a0\u00a0\u00a0\u00a0'redirect' =&gt; env('FB_CALLBACK_URL'),\n],<\/code><\/pre>\n<p>Kuten yll\u00e4 olevassa koodissa on esitetty, meid\u00e4n on tallennettava sovellustiedot ja takaisinsoitto-URL.<\/p>\n<pre><code>FB_APP_ID=PASTE_APP_ID_HERE\nFB_APP_SECRET=PASTE_APP_SECRET_HERE\nFB_CALLBACK_URL=YOU_SITE_URL\/login\/facebook\/callback<\/code><\/pre>\n<p>Olemme soittaneet takaisinsoiton URL-osoitteeksi YOU_SITE_URL \/ login \/ facebook \/ callback. Nyt on aika luoda kaksi reitti\u00e4, yksi k\u00e4ytt\u00e4j\u00e4n uudelleenohjaamiseksi OAuth (meid\u00e4n tapauksessamme Facebook) palveluntarjoajalle ja toinen takaisinsoiton vastaanottamiseksi palveluntarjoajalta todennuksen j\u00e4lkeen.<\/p>\n<h3>OAuthin k\u00e4sittelyn todellinen koodi<\/h3>\n<p>T\u00e4ss\u00e4 vaiheessa kaikki Laravel Socialiten asetukset on suoritettu loppuun. On aika kirjoittaa koodi, joka k\u00e4sittelee uudelleenohjauksen OAuth ja noutaa k\u00e4ytt\u00e4j\u00e4n tiedot.<\/p>\n<p>Avaa login.blade.php-tiedostosi ja aseta alla oleva koodi todenn\u00e4k\u00f6isesti L\u00e4het\u00e4-painikkeen j\u00e4lkeen.<\/p>\n<pre><code>&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"col-md-6 col-md-offset-4\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Login with\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;a href=\"{{ url('\/login\/facebook') }}\"&gt;&lt;i class=\"fa fa-facebook-official\" aria-hidden=\"true\"&gt;&lt;\/i&gt; Facebook&lt;\/a&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;a href=\"{{ url('\/login\/twitter') }}\"&gt;&lt;i class=\"fa fa-twitter\" aria-hidden=\"true\"&gt;&lt;\/i&gt; Twitter&lt;\/a&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;a href=\"{{ url('\/login\/github') }}\"&gt;&lt;i class=\"fa fa-github\" aria-hidden=\"true\"&gt;&lt;\/i&gt; Github&lt;\/a&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n&lt;\/div&gt;<\/code><\/pre>\n<p>Lis\u00e4\u00e4mme t\u00e4h\u00e4n linkin Githubiin ja Twitteriin. OAuthin lis\u00e4\u00e4misen vaiheet n\u00e4ille sosiaalisille sivustoille ovat samat kuin Facebook. Sinun tarvitsee vain luoda vastaavien sosiaalisten sivustojen sovellus ja tallentaa n\u00e4m\u00e4 tiedot samalla tavalla kuin lis\u00e4simme Facebookiin.<\/p>\n<p>M\u00e4\u00e4rit\u00e4 reittitiedostossa reitit alla esitetyll\u00e4 tavalla.<\/p>\n<pre><code>Route::get('login\/{provider}', 'AuthLoginController@redirectToProvider');\nRoute::get('login\/{provider}\/callback', 'AuthLoginController@handleProviderCallback');<\/code><\/pre>\n<p>Siirry seuraavaksi osoitteeseen app \/ Http \/ Controllers \/ Auth \/ LoginController.php ja muokkaa tiedostoa. Sinun tulisi lis\u00e4t\u00e4 alla oleva koodi siihen.<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllersAuth;\n\u00a0\nuse AppHttpControllersController;\nuse IlluminateFoundationAuthAuthenticatesUsers;\nuse Socialite;\nuse AppUser;\nuse Auth;\n\u00a0\nclass LoginController extends Controller\n{\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Redirect the user to the GitHub 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;scopes(['email'])-&gt;redirect();\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/**\n\u00a0\u00a0\u00a0\u00a0\u00a0* Obtain the user information from GitHub.\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\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>Metode redirectToProvider ohjaa k\u00e4ytt\u00e4j\u00e4n uudelleen sosiaalisen sivuston kirjautumissivulle. Kun k\u00e4ytt\u00e4j\u00e4 on valtuuttanut sovelluksen, haemme k\u00e4ytt\u00e4j\u00e4tiedot funktiosta handleProviderCallback. Jos k\u00e4ytt\u00e4j\u00e4\u00e4 ei ole j\u00e4rjestelm\u00e4mme kanssa, lis\u00e4t\u00e4\u00e4n heid\u00e4n tietonsa metodilla findOrCreateUser.<\/p>\n<p>Toivomme, ett\u00e4 sait tiet\u00e4\u00e4 sosiaalisesta kirjautumisj\u00e4rjestelm\u00e4st\u00e4 Laravel Socialiten avulla. Jos sinulla on kysytt\u00e4v\u00e4\u00e4 tai ehdotuksia, j\u00e4t\u00e4 kommentti alla.<\/p>\n<h4>Aiheeseen liittyv\u00e4t artikkelit<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-kayttaa-laravel-multiple-database-connection-ominaisuutta-verkkosivustolla\/\" title=\"Kuinka k\u00e4ytt\u00e4\u00e4 Laravelin useita tietokantayhteyksi\u00e4 verkkosivustolla\">Kuinka k\u00e4ytt\u00e4\u00e4 Laravelin useita tietokantayhteyksi\u00e4 verkkosivustolla<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/luo-monikielinen-verkkosivusto-php-ssa-laravel-frameworkin-avulla\/\" title=\"Luo monikielinen verkkosivusto PHP: ss\u00e4 Laravel Frameworkin avulla\">Luo monikielinen verkkosivusto PHP: ss\u00e4 Laravel Frameworkin avulla<\/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>Jos haluat lis\u00e4t\u00e4 sosiaalisen kirjautumisj\u00e4rjestelm\u00e4n Laravel-verkkosivustoosi, Laravel Socialite on kirjasto, joka auttaa meit\u00e4 m\u00e4\u00e4ritt\u00e4m\u00e4\u00e4n t\u00e4m\u00e4n j\u00e4rjestelm\u00e4n.<\/p>\n","protected":false},"author":1,"featured_media":21626,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[178,499],"tags":[843],"class_list":["post-23333","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chrome-6","category-laravel","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/23333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/comments?post=23333"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/23333\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media\/21626"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media?parent=23333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=23333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=23333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}