Straipsniai

Kas yra Laravel seansai, konfigūracija ir naudojimas su pavyzdžiais

Laravel sesijos leidžia saugoti informaciją ir keistis ja tarp užklausų žiniatinklio programoje. 

Jie yra paprastas būdas išsaugoti esamo vartotojo duomenis. Šioje pamokoje sužinosite, kaip dirbti su Laravel sesijomis.

Kas yra Laravel sesija

Laravel sesija yra būdas saugoti informaciją, teisingai tvarkyti vartotojo pateiktas užklausas. Kai vartotojas paleidžia Laravel programą, to vartotojo sesija pradedama automatiškai. Seanso duomenys saugomi serveryje, o nedidelis slapukas su unikaliu identifikatoriumi išsiunčiamas į vartotojo naršyklę seansui identifikuoti.

Galite naudoti seansą duomenims, kuriuos norite naudoti keliuose puslapiuose arba užklausose, saugoti. Pavyzdžiui, sesiją galite naudoti naudotojo autentifikavimui arba išsaugoti kitą informaciją, kurią norite naudoti seanso metu programoje.

Seanso konfigūracija Laravel

Norėdami naudoti seansus Laravel, pirmiausia turite juos įjungti faile config/session.php konfigūracijos. Šiame faile galima nustatyti konfigūracijos parametrus, susijusius su seansais. Pavyzdžiui, seanso trukmė, tvarkyklė, naudojama seanso duomenims saugoti, ir seanso duomenų saugojimo vieta. 

Failas turi šias konfigūracijos parinktis:
  • vairuotojas: nurodo prieš seansą naudojamą tvarkyklędefiparuoštas naudoti. Laravel palaiko keletą seansų tvarkyklių: failą, slapuką, duomenų bazę, apc, atmintinę, redis, dynamodb ir masyvą;
  • visą gyvenimą: nurodo minučių skaičių, per kurį seansas turi būti laikomas galiojančiu;
  • expire_on_close: jei nustatyta į „true“, seansas baigsis uždarius vartotojo naršyklę;
  • šifruoti: tiesa reiškia, kad sistema užšifruos seanso duomenis prieš juos išsaugant;
  • failai: jei naudojama failo seanso tvarkyklė, ši parinktis nurodo failo saugojimo vietą;
  • ryšys: jei naudojama duomenų bazės seanso tvarkyklė, ši parinktis nurodo naudotiną duomenų bazės ryšį;
  • lentelė: jei naudojama duomenų bazės seanso tvarkyklė, ši parinktis nurodo duomenų bazės lentelę, kuri bus naudojama seanso duomenims saugoti;
  • loterija: reikšmių masyvas, naudojamas atsitiktinai pasirinkti seanso ID slapuko vertę;
  • sausainis: Ši parinktis nurodo slapuko, kuris bus naudojamas sesijos ID saugoti, pavadinimą. Seanso slapukų nustatymams konfigūruoti naudojamos kelio, domeno, saugaus, http_only ir same_site parinktys.

Žemiau pateikiamas failo pavyzdys sessions.php su seanso trukme 120 sekundžių, kataloge saugomų failų naudojimas 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',

];

Seansą taip pat galite konfigūruoti naudodami aplinkos kintamuosius faile .env. Pavyzdžiui, norėdami naudoti duomenų bazės seanso tvarkyklę ir saugoti seanso duomenis seanso lentelėje su MySQL tipo DB, galite nustatyti šiuos aplinkos kintamuosius:

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

Laravel seanso sąranka

Yra trys būdai, kaip dirbti su Laravel seanso duomenimis: 

  • naudojanthelper global session;
  • naudojant Sessijos fasadą;
  • per a Request instance

Visais šiais atvejais duomenys, kuriuos saugote seanso metu, bus pasiekiami to paties vartotojo pateiktose vėlesnėse užklausose, kol baigsis seanso galiojimas arba jie bus sunaikinti rankiniu būdu.

Inovacijų naujienlaiškis
Nepraleiskite svarbiausių naujienų apie naujoves. Prisiregistruokite, kad gautumėte juos el.

Pasaulinės sesijos pagalbininkas

Laravel, naudojant funkciją Global Session Helper tai patogus būdas pasiekti sistemos teikiamas seanso paslaugas. Tai leidžia programoje saugoti ir gauti duomenis iš seanso. Čia yra pavyzdys, kaip naudoti 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();

Taip pat galite perduoti išankstinę vertędefinite kaip antrasis funkcijos argumentas session, kuris bus grąžintas, jei sesijoje nerastas nurodytas raktas:

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

Pavyzdys Session Request

„Laravel“ seanso užklausos egzempliorius nurodo objektą, vaizduojantį HTTP užklausą ir kuriame yra informacijos apie užklausą, pvz., užklausos metodą (GET, POST, PUT ir kt.), užklausos URL, užklausos antraštes ir užklausos turinį. . Jame taip pat yra įvairių metodų, kuriuos galima naudoti norint gauti ir valdyti šią informaciją.

Paprastai pasiekiate egzempliorių Session Request per kintamąjį $request Laravel programoje. Pavyzdžiui, seansą galima pasiekti per užklausos egzempliorių naudojant pagalbinę funkciją 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');
    }
}

Šiame pavyzdyje kintamasis  $request tai klasės pavyzdys Illuminate\Http\Request, kuri reiškia dabartinę HTTP užklausą. Funkcija session užklausos egzempliorius grąžina klasės egzempliorių Illuminate\Session\Store, kuri suteikia įvairias funkcijas dirbant su sesija.

Ercole Palmeri

Inovacijų naujienlaiškis
Nepraleiskite svarbiausių naujienų apie naujoves. Prisiregistruokite, kad gautumėte juos el.

Naujausi straipsniai

Naujoviška intervencija į išplėstinę realybę su „Apple“ žiūrovu Katanijos poliklinikoje

Katanijos poliklinikoje buvo atlikta oftalmoplastikos operacija naudojant „Apple Vision Pro“ reklaminę peržiūrą…

3 gegužės 2024

Vaikų spalvinimo puslapių privalumai – magijos pasaulis įvairaus amžiaus žmonėms

Lavindami smulkiosios motorikos įgūdžius dažydami, vaikai paruošiami sudėtingesniems įgūdžiams, pavyzdžiui, rašymui. Norėdami nuspalvinti…

2 gegužės 2024

Ateitis yra čia: kaip laivybos pramonė sukelia pasaulinės ekonomikos revoliuciją

Karinio jūrų laivyno sektorius yra tikra pasaulinė ekonominė galia, kuri pasiekė 150 mlrd.

1 gegužės 2024

Leidėjai ir OpenAI pasirašo sutartis dėl dirbtinio intelekto apdorojamos informacijos srauto reguliavimo

Praėjusį pirmadienį „Financial Times“ paskelbė apie susitarimą su „OpenAI“. FT licencijuoja savo pasaulinio lygio žurnalistiką…

30 balandis 2024