✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Kirjaudu sisään LinkedInillä Laravelissa Laravel Socialiten avulla

14

Sosiaalisen kirjautumisjärjestelmän lisääminen verkkosivustolle on nykyään trendi. Integroimalla sosiaalinen sisäänkirjautuminen se ohittaa käyttäjän vahvistusprosessin. Sosiaaliset sivustot ovat jo vahvistaneet käyttäjät, joten sovelluksemme ei tarvitse noudattaa samaa prosessia käyttäjän kanssa. Voimme luottaa sosiaalisiin sivustoihin ja antaa käyttäjän käyttää järjestelmäämme, jos hän kirjautuu sisään verkkosivustomme sosiaalisen sivuston kautta. Facebook, Twitter, Google, LinkedIn ovat suosittuja sosiaalisia sivustoja, jotka on yleensä integroitu sosiaaliseksi sisäänkirjautumiseksi verkkosivustolle. Tässä artikkelissa käsitellään sisäänkirjautumista LinkedInin kanssa Laravelissa.

Oppaamme varten integroin LinkedIn-kirjautumisen uuteen Laravel-asennukseen. Aion asentaa Laravelin, luoda ‘käyttäjien’ taulukon ja asentaa paketit, joita tarvitaan sosiaalisen kirjautumisjärjestelmän integroimiseen.

Asenna Laravel suorittamalla alla oleva komento. Täällä luon projektin ” kirjautuneena ”.

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

Luo asennuksen jälkeen tietokanta ja aseta .envtiedostoon kirjautumistiedot. Rakennamme kirjautumisjärjestelmää, joten meidän tulisi tallentaa käyttäjän tiedot tietokantaan.

Tämä opetusohjelma perustuu LinkedIn-kirjautumiseen, joten saamme käyttäjän LinkedIn-profiilin tunnuksen onnistuneen todennuksen jälkeen. Tämän sosiaalisen tunnuksen tallentamiseksi lisäämme sarakkeet tarjoaja ja tarjoajan tunnus. Tässä palveluntarjoajan sarake tallentaa arvon ‘linkedin’ ja tarjoajan_tunnus tallentaa käyttäjän sosiaalisen tunnuksen.

Kun käytimme sosiaalista sisäänkirjautumista, meidän ei tarvitse tallentaa salasanoja, joten salasanasarakkeen arvon tulisi hyväksyä oletusarvo ‘NULL’. Ei ole takeita käyttäjän sähköpostin saamisesta sosiaalisen sisäänkirjautumisen jälkeen, joten uteliaisuuden vuoksi meidän on myös asetettava sähköpostisarake hyväksymään NULL.

Avaa käyttäjien taulukon siirtotiedosto ja lisää koodi alla.

/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->nullable();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password')->nullable();
        $table->string('provider');
        $table->string('provider_id');
        $table->rememberToken();
        $table->timestamps();
    });
}

Suorita alla oleva komento, joka luo taulukot tietokantaamme.

php artisan migrate

Meidän on myös lisättävä nämä kaksi saraketta käyttäjämalliin.

app / User.php

/**
 * The attributes that are mass assignable.
 *
 * @var array
 */
protected $fillable = [
    'name', 'email', 'password', 'provider', 'provider_id'
];

Luo LinkedIn-sovellus

LinkedIn-sisäänkirjautumisen integroimiseksi sinun on luotava sovellus LinkedIn-tilillesi. Tarvitsemme LinkedIn-sovelluksen asiakastunnuksen, asiakassalaisuuden. Meidän on myös määritettävä valtuutettu uudelleenohjauksen URL-osoite sovelluksessa.

  • Siirry LinkedIn-kehittäjäverkostoon.
  • Napsauta Luo sovellus -painiketta.
  • Täytä lomakkeen tiedot.
  • Lisää http://localhost:8000/linkedin/callbackValtuutetut uudelleenohjaus-URL-osoitteet -kenttään.
  • Kopioi asiakastunnus ja asiakassalaisuudet.

Kirjaudu sisään LinkedInillä Laravelissa Laravel Socialiten avulla

Edellä mainittujen vaiheiden jälkeen sinun on lisättävä tuote ‘Kirjaudu sisään LinkedInillä’ LinkedIn-sovellukseesi. Napsauta Tuotteet-välilehteä ja valitse Kirjaudu sisään LinkedInillä. Kun valitset tämän tuotteen, se tarkistetaan ja lisätään sitten lisätyksi tuotteeksi. Tämä voi kestää jonkin aikaa tarkistamiseen. Minun tapauksessani kesti noin 10 minuuttia.

Kirjaudu sisään LinkedInillä Laravelissa Laravel Socialiten avulla

Luo reitit ja ohjain

Voimme nyt aloittaa koodin lisäämisen Laraveliin. Luo ohjain LoginControllerkomennolla:

php artisan make:controller LoginController

Luo seuraavaksi korttitiedosto login.blade.phpja lisää siihen seuraava HTML.

<a href="{{ url('/login/linkedin') }}">
    {{ __('Login with LinkedIn') }}
</a>

Kutsuvat tätä näkymä indexmenetelmää LoginControllerseuraavasti.

public function index()
{
    return view('login');
}

Määritetään sen reitit. Lisään myös muutaman reitin, jotka vaaditaan opetusohjelman seuraavassa osassa.

Route::get('login', 'LoginController@index');
Route::get('login/{provider}', 'LoginController@redirectToProvider');
Route::get('{provider}/callback', 'LoginController@handleProviderCallback');
Route::get('/home', function() {
    return 'User is logged in';
});

Kun käyttäjä kirjautuu sisään LinkedInillä, ohjaan heidät homereitille. Se on vain demotarkoituksiin. Sinun pitäisi vaihtaa tämä reitti joksikin muuksi.

Kirjaudu sisään LinkedIn Laravelilla

Laravelilla on virallinen paketti Socialite. Tämä paketti auttaa meitä integroimaan sosiaalisen kirjautumisjärjestelmän helposti Laraveliin. Asenna tämä paketti komennolla:

composer require laravel/socialite

Kun olet asentanut kirjaston, avaa config/services.phpja lisää LinkedIn-määritykset seuraavasti:

'linkedin' => [
    'client_id' => env('LINKEDIN_CLIENT_ID'),
    'client_secret' => env('LINKEDIN_CLIENT_SECRET'),
    'redirect' => env('LINKEDIN_CALLBACK_URL'),
],

Nyt meidän on lisättävä vakioarvomme .envtiedostoon.

LINKEDIN_CLIENT_ID=YOUR_CLIENT_ID
LINKEDIN_CLIENT_SECRET=YOUR_CLIENT_SECRET
LINKEDIN_CALLBACK_URL=http://localhost:8000/linkedin/callback

Muista korvata paikkamerkit niiden todellisilla arvoilla. Viimeisten säätöjen tulisi olla LoginController.phptiedostossa. Tässä tiedostossa kirjoitamme toiminnon, joka ohjaa käyttäjän LinkedIn-kirjautumissivulle, ja onnistuneen valtuutuksen yhteydessä se kirjaa käyttäjän sisään.

LoginController.php

<?php
 
namespace AppHttpControllers;
 
use IlluminateHttpRequest;
use Socialite;
use AppModelsUser;
use Auth;
 
class LoginController extends Controller
{
    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected $redirectTo = '/home';
 
    /**
     * Call the view
     */
    public function index()
    {
        return view('login');
    }
 
    /**
     * Redirect the user to the Linkedin authentication page.
     *
     * @return Response
     */
    public function redirectToProvider($provider)
    {
        return Socialite::driver($provider)->scopes(['r_liteprofile', 'r_emailaddress'])->redirect();
    }
   
    /**
     * Obtain the user information from Linkedin.
     *
     * @return Response
     */
    public function handleProviderCallback($provider)
    {
        $user = Socialite::driver($provider)->user();
        $authUser = $this->findOrCreateUser($user, $provider);
        Auth::login($authUser, true);
        return redirect($this->redirectTo);
    }
   
    /**
     * If a user has registered before using social auth, return the user
     * else, create a new user object.
     * @param  $user Socialite user object
     * @param $provider Social auth provider
     * @return  User
     */
    public function findOrCreateUser($user, $provider)
    {
        $authUser = User::where('provider_id', $user->id)->first();
        if ($authUser) {
            return $authUser;
        }
        return User::create([
            'name'     => $user->name,
            'email'    => $user->email,
            'provider' => $provider,
            'provider_id' => $user->id
        ]);
    }
}

Asetuksessamme LoginControllerasetamme soveltamisalat, ['r_liteprofile', 'r_emailaddress']joita tarvitaan LinkedIn-käyttäjän perustietojen noutamiseen. Soittomenetelmässä tarkistamme onko käyttäjä olemassa ja jos ei ole, lisätään sitten käyttäjä tietokantaan.

Toivon, että ymmärrät, kuinka kirjaudut sisään LinkedInillä Laravelissa. Haluaisin kuulla ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.

Aiheeseen liittyvät artikkelit

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja