Laravel - Galleta

Las cookies juegan un papel importante al gestionar la sesión de un usuario en una aplicación web. En este capítulo, aprenderá a trabajar con cookies en aplicaciones web basadas en Laravel.

Crear una cookie

La cookie puede ser creada por el asistente de cookies global de Laravel. Es una instancia deSymfony\Component\HttpFoundation\Cookie. La cookie se puede adjuntar a la respuesta mediante el método withCookie (). Crea una instancia de respuesta deIlluminate\Http\Responseclass para llamar al método withCookie (). Las cookies generadas por Laravel están encriptadas y firmadas y el cliente no puede modificarlas ni leerlas.

Aquí hay un código de muestra con una explicación.

//Create a response instance
$response = new Illuminate\Http\Response('Hello World');

//Call the withCookie() method with the response method
$response->withCookie(cookie('name', 'value', $minutes));

//return the response
return $response;

El método Cookie () tomará 3 argumentos. El primer argumento es el nombre de la cookie, el segundo argumento es el valor de la cookie y el tercer argumento es la duración de la cookie, después de lo cual la cookie se eliminará automáticamente.

La cookie se puede configurar para siempre utilizando el método forever como se muestra en el código a continuación.

$response->withCookie(cookie()->forever('name', 'value'));

Recuperar una cookie

Una vez que configuramos la cookie, podemos recuperarla mediante el método cookie (). Este método cookie () tomará solo un argumento que será el nombre de la cookie. El método de la cookie se puede llamar mediante la instancia deIlluminate\Http\Request.

Aquí hay un código de muestra.

//’name’ is the name of the cookie to retrieve the value of
$value = $request->cookie('name');

Ejemplo

Observe el siguiente ejemplo para comprender más sobre las cookies:

Step 1 - Ejecute el siguiente comando para crear un controlador en el que manipularemos la cookie.

php artisan make:controller CookieController --plain

Step 2 - Después de una ejecución exitosa, recibirá el siguiente resultado:

Step 3 - Copie el siguiente código en

app/Http/Controllers/CookieController.php archivo.

app/Http/Controllers/CookieController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class CookieController extends Controller {
   public function setCookie(Request $request) {
      $minutes = 1;
      $response = new Response('Hello World');
      $response->withCookie(cookie('name', 'virat', $minutes));
      return $response;
   }
   public function getCookie(Request $request) {
      $value = $request->cookie('name');
      echo $value;
   }
}

Step 4 - Agregue la siguiente línea en app/Http/routes.php file.

app/Http/routes.php

Route::get('/cookie/set','CookieCont[email protected]');
Route::get('/cookie/get','[email protected]');

Step 5 - Visite la siguiente URL para configurar la cookie.

http://localhost:8000/cookie/set

Step 6- La salida aparecerá como se muestra a continuación. La ventana que aparece en la captura de pantalla está tomada de Firefox, pero dependiendo de su navegador, las cookies también se pueden verificar desde la opción de cookies.

Step 7 - Visite la siguiente URL para obtener la cookie de la URL anterior.

http://localhost:8000/cookie/get

Step 8 - La salida aparecerá como se muestra en la siguiente imagen.