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

Il-Futur qiegħed Hawnhekk: Kif l-Industrija tat-Tbaħħir qed tirrivoluzzjona l-Ekonomija Globali

Is-settur navali huwa qawwa ekonomika globali vera, li navigat lejn suq ta’ 150 biljun...

1 Mejju 2024

Il-pubblikaturi u l-OpenAI jiffirmaw ftehimiet biex jirregolaw il-fluss tal-informazzjoni pproċessata mill-Intelliġenza Artifiċjali

It-Tnejn li għadda, il-Financial Times ħabbret ftehim mal-OpenAI. FT tagħti liċenzja għall-ġurnaliżmu ta’ klassi dinjija tagħha...

April 30 2024

Ħlasijiet Online: Hawn Kif Is-Servizzi ta' Streaming Jagħmel Inti Tħallas Għal Dejjem

Miljuni ta 'nies iħallsu għal servizzi ta' streaming, iħallsu miżati ta 'abbonament ta' kull xahar. Hija opinjoni komuni li inti...

April 29 2024

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