Artikoli

X'inhuma sessjonijiet f'Laravel, konfigurazzjoni u użu b'eżempji

Is-sessjonijiet Laravel jippermettulek taħżen informazzjoni, u tiskambjaha bejn talbiet fl-applikazzjoni tal-web tiegħek. 

Huma mod faċli biex tippersisti data għall-utent attwali. Dan it-tutorja jagħtik il-pedament biex taħdem b'sessjonijiet f'Laravel.

X'inhi sessjoni Laravel

F'Laravel, sessjoni hija mod kif taħżen l-informazzjoni, biex timmaniġġja sew it-talbiet magħmula minn utent. Meta utent iniedi applikazzjoni Laravel, awtomatikament tibda sessjoni għal dak l-utent. Id-dejta tas-sessjoni hija maħżuna fuq is-server u cookie żgħira b'identifikatur uniku tintbagħat lill-browser tal-utent biex tidentifika s-sessjoni.

Tista' tuża s-sessjoni biex taħżen data li trid tuża fuq bosta paġni jew talbiet. Pereżempju, tista' tuża s-sessjoni għall-awtentikazzjoni tal-utent jew taħżen informazzjoni oħra li trid tuża matul is-sessjoni fuq l-applikazzjoni tiegħek.

Setup tas-sessjoni f'Laravel

Biex tuża sessjonijiet f'Laravel, l-ewwel trid tattivahom fil-fajl config/session.php tal-konfigurazzjoni. F'dan il-fajl tista' tissettja parametri ta' konfigurazzjoni relatati mas-sessjonijiet. Pereżempju, it-tul tas-sessjoni, is-sewwieq li għandu juża għall-ħażna tad-dejta tas-sessjoni, u l-post tal-ħażna għad-dejta tas-sessjoni. 

Il-fajl għandu l-għażliet ta 'konfigurazzjoni li ġejjin:
  • sewwieq: Jispeċifika s-sewwieq ta' qabel is-sessjonidefilest biex jintuża. Laravel jappoġġja bosta sewwieqa tas-sessjoni: fajl, cookie, database, apc, memcached, redis, dynamodb, u array;
  • ħajja: Jispeċifika n-numru ta' minuti li fihom is-sessjoni għandha titqies valida;
  • expire_on_close: Jekk issettjat għal veru, is-sessjoni tiskadi meta l-browser tal-utent jingħalaq;
  • kriptaġġ: vera tfisser li l-qafas se jikkripta d-dejta tas-sessjoni qabel ma tinħażen;
  • fajls: Jekk jintuża d-driver tas-sessjoni tal-fajl, din l-għażla tispeċifika l-post tal-ħażna tal-fajl;
  • konnessjoni: Jekk jintuża d-driver tas-sessjoni tad-database, din l-għażla tispeċifika l-konnessjoni tad-database li għandha tuża;
  • tabella: Jekk jintuża d-driver tas-sessjoni tad-database, din l-għażla tispeċifika t-tabella tad-database li għandha tuża biex taħżen id-data tas-sessjoni;
  • lotterija: Array ta’ valuri użati biex tagħżel b’mod każwali valur tal-cookie tal-ID tas-sessjoni;
  • cookie: Din l-għażla tispeċifika l-isem tal-cookie li se tintuża biex tinħażen l-ID tas-sessjoni. L-għażliet tal-mogħdija, tad-dominju, tas-sigurtà, http_only, u same_site jintużaw biex jiġu kkonfigurati s-settings tal-cookies għas-sessjoni.

Hawn taħt hemm fajl eżempju sessions.php b'tul ta 'sessjoni 120 sekonda, użu ta' fajls maħżuna fid-direttorju 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',

];

Tista 'wkoll tikkonfigura s-sessjoni billi tuża varjabbli ambjentali fil-fajl .env. Pereżempju, biex tuża s-sewwieq tas-sessjoni tad-database u taħżen id-dejta tas-sessjoni f'tabella tas-sessjoni, bit-tip MySQL DB, tista 'tissettja l-varjabbli ambjentali li ġejjin:

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

Setup tas-sessjoni Laravel

Hemm tliet modi kif taħdem bid-dejta tas-sessjoni f'Laravel: 

  • bl-użu tal-helper ta ' global session;
  • bl-użu tal-faċċata tas-Sessjoni;
  • permezz ta' a Request instance

F'dawn il-każijiet kollha, id-dejta li taħżen fis-sessjoni tkun disponibbli f'talbiet sussegwenti magħmula mill-istess utent sakemm is-sessjoni tiskadi jew tinqered manwalment.

Newsletter dwar l-innovazzjoni
Titlifx l-aktar aħbarijiet importanti dwar l-innovazzjoni. Irreġistra biex tirċevihom bl-email.

Sessjoni Globali Helper

F'Laravel, bl-użu tal-funzjoni Global Session Helper huwa mod konvenjenti biex taċċessa s-servizzi tas-sessjoni pprovduti mill-qafas. Jippermettilek taħżen u tirkupra data mis-sessjoni fl-applikazzjoni tiegħek. Hawn eżempju ta 'kif tuża l- 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();

Tista 'wkoll tgħaddi valur predefinited bħala t-tieni argument għall-funzjoni session, li tiġi rritornata jekk iċ-ċavetta speċifikata ma tinstabx fis-sessjoni:

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

Istanza ta' Session Request

F'Laravel, istanza ta' talba ta' sessjoni tirreferi għal oġġett li jirrappreżenta talba HTTP u fih informazzjoni dwar it-talba, bħall-metodu ta' talba (GET, POST, PUT, eċċ.), URL tat-talba, headers tat-talba u l-korp tar-rikjesta. . Fiha wkoll diversi metodi li jistgħu jintużaw biex tiġi rkuprata u mmanipulata din l-informazzjoni.

Tipikament ikollok aċċess għall-istanza ta Session Request permezz tal-varjabbli $request f'applikazzjoni Laravel. Pereżempju, tista' taċċessa sessjoni permezz ta' istanza ta' talba billi tuża l-funzjoni helper 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');
    }
}

F'dan l-eżempju, il-varjabbli  $request hija eżempju tal-klassi Illuminate\Http\Request, li tirrappreżenta t-talba HTTP attwali. Il-funzjoni session tal-istanza tat-talba tirritorna istanza tal-klassi Illuminate\Session\Store, li tipprovdi diversi funzjonijiet biex taħdem mas-sessjoni.

Ercole Palmeri

Newsletter dwar l-innovazzjoni
Titlifx l-aktar aħbarijiet importanti dwar l-innovazzjoni. Irreġistra biex tirċevihom bl-email.

Artikoli riċenti

Veeam għandu l-aktar appoġġ komprensiv għar-ransomware, mill-protezzjoni għar-rispons u l-irkupru

Coveware minn Veeam se jkompli jipprovdi servizzi ta' rispons għal inċidenti ta' estorsjoni ċibernetika. Coveware se joffri forensiċi u kapaċitajiet ta' rimedju...

April 23 2024

Rivoluzzjoni Ekoloġika u Diġitali: Kif il-Manutenzjoni Predittiva qed tittrasforma l-Industrija taż-Żejt u l-Gass

Il-manutenzjoni ta’ tbassir qed tirrivoluzzjona s-settur taż-żejt u l-gass, b’approċċ innovattiv u proattiv għall-ġestjoni tal-impjant...

April 22 2024

Ir-regolatur tal-antitrust tar-Renju Unit iqajjem allarm ta’ BigTech fuq GenAI

Is-CMA tar-Renju Unit ħarġet twissija dwar l-imġieba ta 'Big Tech fis-suq tal-intelliġenza artifiċjali. Hemm…

April 18 2024

Casa Green: rivoluzzjoni tal-enerġija għal futur sostenibbli fl-Italja

Id-Digriet "Case Green", ifformulat mill-Unjoni Ewropea biex itejjeb l-effiċjenza enerġetika tal-bini, ikkonkluda l-proċess leġiżlattiv tiegħu bi...

April 18 2024