품목

Laravel의 세션, 구성 및 예제 사용은 무엇입니까

Laravel 세션을 사용하면 정보를 저장하고 웹 애플리케이션의 요청간에 정보를 교환할 수 있습니다. 

현재 사용자를 위해 데이터를 유지하는 쉬운 방법입니다. 이 튜토리얼은 Laravel에서 세션 작업의 기본을 제공합니다.

Laravel 세션이란 무엇입니까

Laravel에서 세션은 정보를 저장하고 사용자의 요청을 올바르게 처리하는 방법입니다. 사용자가 Laravel 애플리케이션을 시작하면 해당 사용자에 대한 세션이 자동으로 시작됩니다. 세션 데이터는 서버에 저장되고 세션을 식별하기 위해 고유 식별자가 있는 작은 쿠키가 사용자의 브라우저로 전송됩니다.

세션을 사용하여 여러 페이지 또는 요청에서 사용하려는 데이터를 저장할 수 있습니다. 예를 들어 사용자 인증을 위해 세션을 사용하거나 애플리케이션의 세션 중에 사용하려는 기타 정보를 저장할 수 있습니다.

Laravel의 세션 구성

Laravel에서 세션을 사용하려면 먼저 파일에서 세션을 활성화해야 합니다. config/session.php 구성의. 이 파일에서 세션과 관련된 구성 매개변수를 설정할 수 있습니다. 예를 들어 세션 기간, 세션 데이터를 저장하는 데 사용할 드라이버 및 세션 데이터의 저장 위치입니다. 

파일에는 다음과 같은 구성 옵션이 있습니다.
  • 운전사: 사전 세션 드라이버를 지정합니다.defi사용할 준비가. Laravel은 파일, 쿠키, 데이터베이스, apc, memcached, redis, dynamodb 및 배열과 같은 여러 세션 드라이버를 지원합니다.
  • 일생: 세션이 유효한 것으로 간주되어야 하는 시간(분)을 지정합니다.
  • 만료일_닫기: true로 설정하면 사용자의 브라우저가 닫힐 때 세션이 만료됩니다.
  • 암호화: true는 프레임워크가 저장되기 전에 세션 데이터를 암호화함을 의미합니다.
  • 파일: 파일 세션 드라이버를 사용하는 경우 이 옵션은 파일 저장 위치를 ​​지정합니다.
  • 연결: 데이터베이스 세션 드라이버를 사용하는 경우 이 옵션은 사용할 데이터베이스 연결을 지정합니다.
  • 테이블: 데이터베이스 세션 드라이버를 사용하는 경우 이 옵션은 세션 데이터를 저장하는 데 사용할 데이터베이스 테이블을 지정합니다.
  • 추첨: 세션 ID 쿠키 값을 임의로 선택하는 데 사용되는 값의 배열입니다.
  • 쿠키: 이 옵션은 세션 ID를 저장하는 데 사용할 쿠키의 이름을 지정합니다. 경로, 도메인, 보안, http_only 및 same_site 옵션은 세션에 대한 쿠키 설정을 구성하는 데 사용됩니다.

아래는 파일 예시 sessions.php 세션 기간 120초, 디렉터리에 저장된 파일 사용 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',

];

파일의 환경 변수를 사용하여 세션을 구성할 수도 있습니다. .env. 예를 들어 데이터베이스 세션 드라이버를 사용하고 세션 데이터를 세션 테이블에 저장하려면 MySQL 유형의 DB를 사용하여 다음과 같은 환경 변수를 설정할 수 있습니다.

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

라라벨 세션 설정

Laravel에서 세션 데이터로 작업하는 세 가지 방법이 있습니다: 

  • ~을 사용하여helper global session;
  • 세션 파사드 사용;
  • 하나를 통해 Request instance

이 모든 경우에 세션에 저장한 데이터는 세션이 만료되거나 수동으로 제거될 때까지 동일한 사용자가 만든 후속 요청에서 사용할 수 있습니다.

혁신 뉴스레터
혁신에 관한 가장 중요한 뉴스를 놓치지 마세요. 이메일로 받으려면 가입하세요.

전역 세션 도우미

Laravel에서 함수를 사용하여 Global Session Helper 이는 프레임워크에서 제공하는 세션 서비스에 액세스하는 편리한 방법입니다. 애플리케이션의 세션에서 데이터를 저장하고 검색할 수 있습니다. 다음은 사용 방법의 예입니다. 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();

사전 값을 전달할 수도 있습니다.defi함수의 두 번째 인수로 nite session, 지정된 키가 세션에서 발견되지 않으면 반환됩니다.

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

대신에 Session Request

Laravel에서 세션 요청 인스턴스는 HTTP 요청을 나타내는 객체를 말하며 요청 메소드(GET, POST, PUT 등), 요청 URL, 요청 헤더 및 요청 본문과 같은 요청에 대한 정보를 포함합니다. . 또한 이 정보를 검색하고 조작하는 데 사용할 수 있는 다양한 방법이 포함되어 있습니다.

일반적으로 다음 인스턴스에 액세스합니다. Session Request 변수를 통해 $request Laravel 응용 프로그램에서. 예를 들어 헬퍼 함수를 ​​사용하여 요청 인스턴스를 통해 세션에 액세스할 수 있습니다. 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');
    }
}

이 예에서 변수  $request 그것은 클래스의 인스턴스입니다 Illuminate\Http\Request, 현재 HTTP 요청을 나타냅니다. 함수 session 요청 인스턴스는 클래스의 인스턴스를 반환합니다. Illuminate\Session\Store, 세션 작업을 위한 다양한 기능을 제공합니다.

Ercole Palmeri

혁신 뉴스레터
혁신에 관한 가장 중요한 뉴스를 놓치지 마세요. 이메일로 받으려면 가입하세요.

최근 기사

미래가 여기에 있습니다: 해운 산업이 글로벌 경제를 어떻게 혁신하고 있습니까?

해군 부문은 150억 시장을 향해 항해해온 진정한 글로벌 경제강국입니다.

1 월 2024

출판사와 OpenAI, 인공지능이 처리하는 정보의 흐름을 규제하기 위한 계약 체결

지난 월요일, Financial Times는 OpenAI와의 계약을 발표했습니다. FT는 세계적 수준의 저널리즘에 라이선스를 부여합니다…

4월 30 2024

온라인 결제: 스트리밍 서비스를 통해 영원히 결제하는 방법은 다음과 같습니다.

수백만 명의 사람들이 스트리밍 서비스 비용을 지불하고 월간 구독료를 지불합니다. 당신은…

4월 29 2024

Veeam은 보호부터 대응, 복구까지 랜섬웨어에 대한 가장 포괄적인 지원을 제공합니다.

Coveware by Veeam은 계속해서 사이버 강탈 사건 대응 서비스를 제공할 것입니다. Coveware는 법의학 및 교정 기능을 제공할 것입니다…

4월 23 2024