Artikkelit

Mitä ovat istunnot Laravelissa, konfigurointi ja käyttö esimerkkien kanssa

Laravel-istuntojen avulla voit tallentaa tietoja ja vaihtaa niitä pyyntöjen välillä verkkosovelluksessasi. 

Ne ovat helppo tapa säilyttää tiedot nykyiselle käyttäjälle. Tämä opetusohjelma antaa sinulle perusasiat istuntojen kanssa työskentelystä Laravelissa.

Mikä on Laravel-istunto

Laravelissa istunto on tapa tallentaa tietoja, käsitellä oikein käyttäjän tekemiä pyyntöjä. Kun käyttäjä käynnistää Laravel-sovelluksen, istunto käynnistyy automaattisesti kyseiselle käyttäjälle. Istuntotiedot tallennetaan palvelimelle ja käyttäjän selaimeen lähetetään pieni eväste, jolla on yksilöllinen tunniste istunnon tunnistamiseksi.

Voit käyttää istuntoa tietojen tallentamiseen, joita haluat käyttää useille sivuille tai pyynnöille. Voit esimerkiksi käyttää istuntoa käyttäjien todentamiseen tai tallentaa muita tietoja, joita haluat käyttää istunnon aikana sovellukseesi.

Istunnon määritys Laravelissa

Jos haluat käyttää istuntoja Laravelissa, sinun on ensin otettava ne käyttöön tiedostossa config/session.php kokoonpanosta. Tässä tiedostossa on mahdollista asettaa istuntoihin liittyviä konfiguraatioparametreja. Esimerkiksi istunnon kesto, istuntotietojen tallentamiseen käytettävä ajuri ja istuntotietojen tallennuspaikka. 

Tiedostossa on seuraavat määritysvaihtoehdot:
  • kuljettaja: Määrittää istuntoa edeltävän ohjaimendefivalmis käytettäväksi. Laravel tukee useita istuntoohjaimia: tiedosto, eväste, tietokanta, apc, memcached, redis, dynamodb ja array;
  • elinikäinen: Määrittää minuuttien määrän, jonka aikana istuntoa on pidettävä voimassa;
  • expire_on_close: Jos arvo on tosi, istunto vanhenee, kun käyttäjän selain suljetaan;
  • Salaa: tosi tarkoittaa, että kehys salaa istuntotiedot ennen kuin se tallennetaan;
  • Tiedostojen: Jos käytetään tiedostoistuntoohjainta, tämä asetus määrittää tiedoston tallennuspaikan;
  • liitäntä: Jos tietokantaistunnon ohjainta käytetään, tämä asetus määrittää käytettävän tietokantayhteyden.
  • taulukko: Jos tietokantaistuntoohjainta käytetään, tämä asetus määrittää tietokantataulukon, jota käytetään istuntotietojen tallentamiseen.
  • arpajaiset: Arvojen joukko, jota käytetään valitsemaan satunnaisesti istuntotunnuksen evästearvo;
  • pikkuleipä: Tämä vaihtoehto määrittää evästeen nimen, jota käytetään istuntotunnuksen tallentamiseen. Polku-, verkkotunnus-, suojattu-, http_only- ja same_site-vaihtoehtoja käytetään istunnon evästeasetusten määrittämiseen.

Alla on esimerkki tiedostosta sessions.php istunnon kesto 120 sekuntia, hakemistoon tallennettujen tiedostojen käyttö framework/sessions:

<?php

use Illuminate\Support\Str;

return [
    'driver' => env('SESSION_DRIVER', 'file'),
    'lifetime' => env('SESSION_LIFETIME', 120),
    'expire_on_close' => false,
    'encrypt' => false,
    'files' => storage_path('framework/sessions'),
    'connection' => env('SESSION_CONNECTION', null),
    'table' => 'sessions',
    'store' => env('SESSION_STORE', null),
    'lottery' => [2, 100],
    'cookie' => env(
        'SESSION_COOKIE',
        Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
    ),
    'path' => '/',
    'domain' => env('SESSION_DOMAIN', null),
    'secure' => env('SESSION_SECURE_COOKIE'),
    'http_only' => true,

    'same_site' => 'lax',

];

Voit myös määrittää istunnon käyttämällä tiedoston ympäristömuuttujia .env. Jos esimerkiksi haluat käyttää tietokantaistuntoohjainta ja tallentaa istuntotiedot istuntotaulukkoon MySQL-tyyppisen DB:n kanssa, voit asettaa seuraavat ympäristömuuttujat:

SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions

Laravel-istunnon asetukset

Laravelissa on kolme tapaa käsitellä istuntotietoja: 

  • käyttämällähelper ja global session;
  • käyttämällä Session julkisivua;
  • kautta a Request instance

Kaikissa näissä tapauksissa istunnon aikana tallentamasi tiedot ovat käytettävissä saman käyttäjän myöhemmissä pyynnöissä, kunnes istunto vanhenee tai se tuhotaan manuaalisesti.

Innovaatio-uutiskirje
Älä missaa tärkeimpiä innovaatioita koskevia uutisia. Rekisteröidy saadaksesi ne sähköpostitse.

Globaali istunnon apulainen

Laravelissa funktion avulla Global Session Helper se on kätevä tapa käyttää kehyksen tarjoamia istuntopalveluita. Sen avulla voit tallentaa ja hakea tietoja istunnosta sovelluksessasi. Tässä on esimerkki kuinka käyttää session helper:

// Store data in the session
session(['key' => 'value']);

// Retrieve data from the session
$value = session('key');

// Remove data from the session
session()->forget('key');

// Clearing the Entire Session
session()->flush();

Voit myös välittää esiarvondefinite funktion toisena argumenttina session, joka palautetaan, jos määritettyä avainta ei löydy istunnosta:

$value = session('key', 'default');

Esiintymä Session Request

Laravelissa istuntopyyntöinstanssi viittaa objektiin, joka edustaa HTTP-pyyntöä ja sisältää tietoja pyynnöstä, kuten pyyntömenetelmän (GET, POST, PUT jne.), pyynnön URL-osoitteen, pyynnön otsikot ja pyynnön rungon . Se sisältää myös erilaisia ​​menetelmiä, joita voidaan käyttää näiden tietojen hakemiseen ja käsittelemiseen.

Yleensä käytät esiintymää Session Request muuttujan kautta $request Laravel-sovelluksessa. Esimerkiksi istuntoon voidaan päästä pyyntöesiintymän kautta aputoiminnolla session().

use Illuminate\Http\Request;

class ExampleController extends Controller
{
   public function example(Request $request)
   {
       // Store data in the session using the put function
       $request->session()->put('key', 'value');

       // Retrieve data from the session using the get function
       $value = $request->session()->get('key');

       // Check if a value exists in the session using the has function:
       if ($request->session()->has('key')) {
           // The key exists in the session.
       }

       // To determine if a value exists in the session, even if its value is null:
       if ($request->session()->exists('users')) {
           // The value exists in the session.
       }

       // Remove data from the session using the forget function
       $request->session()->forget('key');
    }
}

Tässä esimerkissä muuttuja  $request se on luokan esimerkki Illuminate\Http\Request, joka edustaa nykyistä HTTP-pyyntöä. Toiminto session request esiintymä palauttaa luokan esiintymän Illuminate\Session\Store, joka tarjoaa erilaisia ​​toimintoja istunnon kanssa työskentelyyn.

Ercole Palmeri

Innovaatio-uutiskirje
Älä missaa tärkeimpiä innovaatioita koskevia uutisia. Rekisteröidy saadaksesi ne sähköpostitse.

Viimeaikaiset artikkelit

Veeam tarjoaa kattavimman tuen kiristysohjelmille suojauksesta vastaukseen ja palautukseen

Veeamin Coveware tarjoaa jatkossakin kyberkiristystapahtumien reagointipalveluita. Coveware tarjoaa rikosteknisiä ja korjaavia ominaisuuksia…

Huhtikuu 23 2024

Vihreä ja digitaalinen vallankumous: Kuinka ennakoiva huolto muuttaa öljy- ja kaasuteollisuutta

Ennakoiva huolto mullistaa öljy- ja kaasualan innovatiivisella ja ennakoivalla lähestymistavalla laitosten hallintaan.…

Huhtikuu 22 2024

Ison-Britannian kilpailuviranomainen herättää BigTech-hälytyksen GenAI:sta

Britannian CMA on antanut varoituksen Big Techin käyttäytymisestä tekoälymarkkinoilla. Siellä…

Huhtikuu 18 2024

Casa Green: energiavallankumous kestävän tulevaisuuden puolesta Italiassa

Euroopan unionin rakennusten energiatehokkuuden parantamiseksi laatima "Green Houses" -asetus on saanut lainsäädäntöprosessinsa päätökseen…

Huhtikuu 18 2024