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.