Post Top Ad

Your Ad Spot

viernes, 17 de abril de 2020

Middleware Laravel

El middleware actúa como una capa entre el usuario y la solicitud. Significa que cuando el usuario solicita el servidor, la solicitud pasará a través del middleware y luego el middleware verifica si la solicitud está autenticada o no. Si la solicitud del usuario se autentica, la solicitud se envía al backend. Si la solicitud del usuario no está autenticada, el middleware redirigirá al usuario a la pantalla de inicio de sesión.
Se puede usar un middleware adicional para realizar una variedad de tareas, excepto la autenticación. Por ejemplo, el middleware CORS es responsable de agregar encabezados a todas las respuestas.
Laravel Framework incluye varios middleware, como autenticación y protección CSRF, y todos estos se encuentran en el directorio app / Http / Middleware .
Podemos decir que el middleware es un filtro de solicitud http donde puede verificar las condiciones.
En middleware, vamos a discutir los siguientes temas:
  • Hacer un middleware
  • Aplicar middleware
  • Comprobar estado en middleware
  • Enrutar middleware

Crear un middleware

Escriba el comando php artisan make: middleware 'nombre del middleware' .
Middleware Laravel
En la pantalla anterior, escribimos el comando " php artisan make: middleware CheckAge " donde CheckAge es el nombre del middleware. La ventana anterior muestra que el middleware se ha creado correctamente con el nombre " CheckAge ".
Para ver si el middleware CheckAge está creado o no, vaya a su proyecto. Nuestro nombre de proyecto es laravelproject, por lo que la ruta para el middleware sería: C: \ xampp \ htdocs \ laravelproject \ app \ Http \ Middleware .
Middleware Laravel

Aplicar un middleware

El middleware se puede aplicar a todas las URL o a algunas URL particulares.
Apliquemos el middleware a todas las URL.
Paso 1: abre el archivo kernel.php. Si queremos aplicar el middleware a todas las URL, agregue la ruta del middleware en la matriz de middleware.
  1. <? php  
  2. aplicación de espacio de nombres \ Http;  
  3. use  Illuminate \ Foundation \ Http \ Kernel  como  HttpKernel;  
  4. clase  Kernel  extiende  HttpKernel  
  5. {  
  6.     / ** 
  7.      * La pila global de middleware HTTP de la aplicación. 
  8.      * * 
  9.      * Estos middleware se ejecutan durante cada solicitud a su aplicación. 
  10.      * * 
  11.      * @var array 
  12.      * /  
  13.  protected $ middleware  = [\ Illuminate \ Foundation \ Http \ Middleware \ CheckForMaintenanceMode :: class ,   
  14. \ Illuminate \ Foundation \ Http \ Middleware \ ValidatePostSize :: class ,  
  15.  \ App \ Http \ Middleware \ TrimStrings :: clase ,  
  16.  \ App \ Http \ Middleware \ CheckAge  
  17. :: clase ,  
  18.   \ Illuminate \ Foundation \ Http \ Middleware \ ConvertEmptyStringsToNull :: class ,  
  19.     ];  
  20.   
  21.    / ** 
  22.      * Ruta de la aplicación de grupos de middleware. 
  23.      * * 
  24.      * @var array 
  25.      * /  
  26.       
  27. protected $ middlewareGroups  = [   
  28.         'web'  => [  
  29.             \ App \ Http \ Middleware \ EncryptCookies :: clase ,  
  30.             
  31.   \ Illuminate \ Cookie \ Middleware \ AddQueuedCookiesToResponse :: class ,  
  32.               
  33. \ Illuminate \ Session \ Middleware \ StartSession :: clase ,  
  34.               
  35. // \ Illuminate \ Session \ Middleware \ AuthenticateSession :: clase,  
  36.             \ Iluminar \ Ver \ Middleware   
  37. \ ShareErrorsFromSession :: clase ,  
  38.             
  39.   \ App \ Http \ Middleware \ VerifyCsrfToken :: clase ,  
  40.               
  41. \ Illuminate \ Routing \ Middleware \ SubstituteBindings :: clase ,  
  42.         ],  
  43.   
  44.         'api'  => [  
  45.             «acelerador: 60,1» ,  
  46.             'fijaciones' ,  
  47.         ],  
  48.     ];  
  49.   
  50.       
  51.  / ** 
  52.      * El middleware de ruta de la aplicación. 
  53.      * * 
  54.      * Estos middleware pueden asignarse a grupos o usarse individualmente. 
  55.      * * 
  56.      * *   
  57. @var array 
  58.      * /  
  59.     protected $ routeMiddleware  = [   
  60.           
  61. 'auth'  => \ Illuminate \ Auth \ Middleware \ Authenticate :: class ,  
  62.         'auth.basic'  => \ Illuminate \ Auth \ Middleware   
  63. \ AuthenticateWithBasicAuth :: class ,  
  64.           
  65. 'bindings'  => \ Illuminate \ Routing \ Middleware \ SubstituteBindings :: class ,  
  66.           
  67. 'can'  => \ Illuminate \ Auth \ Middleware \ Authorize :: class ,  
  68.         'guest'  => \ App \ Http \ Middleware   
  69. \ RedirectIfAuthenticated :: class ,  
  70.       
  71.     'throttle'  => \ Illuminate \ Routing \ Middleware \ ThrottleRequests :: class ,  
  72.     ];  
  73. }  
Paso 2: escriba el comando php artisan serve en la ventana de Git Bash.
Middleware Laravel
Paso 3: Abra el archivo CheckAge.php , que ha creado como middleware.
  1. <? php  
  2.   
  3. Aplicación de espacio de nombres \ Http \ Middleware;  
  4.   
  5. usar  cierre;  
  6.   
  7. clase  CheckAge  
  8.   
  9. {  
  10.       
  11. / ** 
  12.      * Manejar una solicitud entrante. 
  13.      * * 
  14.      * @param \ Illuminate \ Http  
  15. \ Request $ request 
  16.      * @param \ Closure $ next 
  17.      * @retorno mezclado 
  18.      * /  
  19.    identificador de función pública $ solicitud , cierre  $ siguiente )   
  20.  {  
  21.  // devuelve "middleware";  
  22. echo "hola mundo" ;   
  23. devolver $ siguiente $ solicitud );   
  24. }  
  25. }  
Paso 4: Ahora, ingrese la URL ' http: // localhost / laravelproject / public / '.
Middleware Laravel
Apliquemos el middleware a algunas rutas específicas.
Paso 1: abre el archivo kernel.php. Si queremos aplicar el middleware a algunas rutas específicas
  1. <? php  
  2. aplicación de espacio de nombres \ Http;  
  3. use  Illuminate \ Foundation \ Http \ Kernel  como  HttpKernel;  
  4. clase  Kernel  extiende  HttpKernel  
  5. {  
  6.     / ** 
  7.      * La pila global de middleware HTTP de la aplicación. 
  8.      * * 
  9.      * Estos middleware se ejecutan durante cada solicitud a su aplicación. 
  10.      * * 
  11.      * @var array 
  12.      * /  
  13.   $ middleware protegido  = [   
  14.    \ Illuminate \ Foundation \ Http \ Middleware \ CheckForMaintenanceMode :: class ,  
  15.    \ Illuminate \ Foundation \ Http \ Middleware \ ValidatePostSize :: class ,  
  16.   \ App \ Http \ Middleware \ TrimStrings :: clase ,  
  17.          
  18.   
  19.     
  20.   
  21. \ Illuminate \ Foundation \ Http \ Middleware \ ConvertEmptyStringsToNull :: class ,  
  22.     ];  
  23.  / ** 
  24.      * Ruta de la aplicación de grupos de middleware. 
  25.      * * 
  26.      * @var array 
  27.      * /  
  28.  protected $ middlewareGroups  = [   
  29.  'web'  => [  
  30.   \ App \ Http \ Middleware \ EncryptCookies :: clase ,  
  31.   \ Illuminate \ Cookie \ Middleware \ AddQueuedCookiesToResponse :: class ,  
  32.   \ Illuminate \ Session \ Middleware \ StartSession :: clase ,  
  33.   // \ Illuminate \ Session \ Middleware \ AuthenticateSession :: clase,  
  34.   \ Illuminate \ View \ Middleware \ ShareErrorsFromSession :: clase ,  
  35.  \ App \ Http \ Middleware \ VerifyCsrfToken :: clase ,  
  36.  \ Illuminate \ Routing \ Middleware \ SubstituteBindings :: clase ,  
  37.  ],  
  38.   
  39.  'api'  => [  
  40.             «acelerador: 60,1» ,  
  41.             'fijaciones' ,  
  42.         ],  
  43.     ];  
  44.  / ** 
  45.      * El middleware de ruta de la aplicación. 
  46.      * * 
  47.      * Estos middleware pueden asignarse a grupos o usarse individualmente. 
  48.      * * 
  49.      * *   
  50. @var array 
  51.      * /  
  52.     protected $ routeMiddleware  = [   
  53.           
  54. 'auth'  => \ Illuminate \ Auth \ Middleware \ Authenticate :: class ,  
  55.         'auth.basic'  => \ Illuminate \ Auth \ Middleware   
  56. \ AuthenticateWithBasicAuth :: class ,  
  57.           
  58. 'bindings'  => \ Illuminate \ Routing \ Middleware \ SubstituteBindings :: class ,  
  59.           
  60. 'can'  => \ Illuminate \ Auth \ Middleware \ Authorize :: class ,  
  61.         'guest'  => \ App \ Http \ Middleware   
  62. \ RedirectIfAuthenticated :: class ,  
  63.       
  64.     'throttle'  => \ Illuminate \ Routing \ Middleware \ ThrottleRequests :: class ,  
  65.    
  66. 'age'  => \ App \ Http \ Middleware \ CheckAge :: class  ];  
  67.          
  68. }  
En el código anterior, hemos agregado el código, es decir, '' age '=> \ App \ Http \ Middleware \ CheckAge :: class' , donde age es el nombre del middleware. Ahora, podemos usar el middleware 'age' para algunas rutas específicas.
Paso 2: Abra el archivo CheckAge.php , que ha creado como middleware.
Paso 3: Agregue el código de middleware en el archivo web.php .
  1. Ruta :: Get ( '/' function ()  
  2. {  
  3.    vista de retorno 'bienvenido' );  
  4. }) -> middleware ( 'edad' );  
  5. Ruta :: Get ( 'usuario / perfil' función ()  
  6. {  
  7.   devolver "perfil de usuario" ;   
  8. });  
En el código anterior, hemos agregado middleware en la URL raíz '/', y no hemos agregado el middleware en la URL 'usuario / perfil'.
Salida:
Cuando accedemos a la URL raíz, la salida sería:
Middleware Laravel
El resultado anterior muestra que también se ha accedido al código de middleware ya que muestra un "hola mundo".
Cuando accedemos a la URL, es decir, / usuario / perfil, la salida sería:
Middleware Laravel
La salida anterior indica que no se ha accedido al código de middleware.
Cuando el parámetro se pasa en una URL.
web.php
  1. Ruta :: Get ( '/ {age}' función $ age )  
  2. {  
  3.    vista de retorno 'bienvenido' );  
  4. }) -> middleware ( 'edad' );  
CheckAge.php
  1. <? php  
  2. Aplicación de espacio de nombres \ Http \ Middleware;  
  3. usar  cierre;  
  4. clase  CheckAge  
  5. {  
  6.  / ** 
  7.  * Manejar una solicitud entrante. 
  8.  * * 
  9.       
  10. * @param 
  11.   \ Illuminate \ Http \ Request $ solicitud 
  12.  * @param \ Closure $ next 
  13.  * @retorno mezclado 
  14.  * /  
  15.    identificador de función pública $ solicitud , cierre  $ siguiente )   
  16.  {  
  17.  // devuelve "middleware";  
  18. echo "esto es middleware de verificación" ;   
  19. devolver $ siguiente $ solicitud );   
  20. }}  
Salida
Middleware Laravel

Comprobar estado en middleware

El middleware también se puede usar para verificar la condición. Comprendamos a través de un ejemplo.
  1. Ruta :: Get ( '/ {age}' función $ age )  
  2. {  
  3.    vista de retorno 'bienvenido' );  
  4. }) -> middleware ( 'edad' );  

  1. <? php  
  2. Aplicación de espacio de nombres \ Http \ Middleware;  
  3. usar  cierre;  
  4. clase  CheckAge  
  5. {  
  6.       
  7. / ** 
  8.      * Manejar una solicitud entrante. 
  9.      * * 
  10.       
  11. * @param 
  12.   \ Illuminate \ Http \ Request $ solicitud 
  13.      
  14.  * @param \ Closure $ next 
  15.      * @retorno mezclado 
  16.      * /  
  17.    
  18.     identificador de función pública $ solicitud , cierre  $ siguiente )   
  19.       
  20. {  
  21.   // devuelve "middleware";  
  22. if $ solicitud -> edad> 10)  
  23. {  
  24. echo "La edad es mayor que 10" ;   
  25. }  
  26. más  
  27. {  
  28. echo "La edad no es mayor que 10" ;  
  29. }  
  30. devolver $ siguiente $ solicitud );   
  31.       
  32. }}  
Salida:
Middleware Laravel
Middleware Laravel

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

outbrain

Páginas