API en Laravel 10 | Autenticación Sanctum

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 ก.ย. 2024
  • API en Laravel 10 autenticación Sanctum - relaciones entre tablas
    En este video crearemos una api con Laravel 10 usando la autenticación de Sanctum.
    Crearemos 2 tablas, departamentos y empleados.
    Haremos uso de Factory para insertar registros para mandarlos a llamar en un seeder.
    Utilizaremos Validator para validar los campos de la solicitud.
    #api #laravel #laravel10 #sanctum
    -- Comandos utilizados --
    Crear proyecto: composer create-project laravel/laravel company --prefer-dist
    Crear modelo,migración, factory y controllador de departametnos: php artisan make:model Department -mcrf --api
    Crear modelo,migración, factory y controllador de empleados: php artisan make:model Employee -mcrf --api
    Crear controlador para la autenticación: php artisan make:controller AuthController
    Ejecutar las migraciones y seeder:
    php artisan migrate --seed

ความคิดเห็น • 70

  • @artroxxgaming
    @artroxxgaming 10 วันที่ผ่านมา +1

    Agradezco un mundo este video, desde siempre me acostumbre a trabajar con laravel web y nunca para desarrollar una api que fuera consuimida luego por un front y la verdad me estaba dando problemas la parte de la autenticacion debido a ciertas particularidades del proyecto pero gracias a tu video logre identificar las raices de esos problemas, 10/10

  • @ginogrecor
    @ginogrecor 8 หลายเดือนก่อน +2

    Con este video y agregándole un poco más de complejidad como relaciones OneToOne y OneToMany agregarle también días trabajados semanal por salario estaría completo. Mil gracias aprendí mucho con este video.

    • @programandocondancruise
      @programandocondancruise  8 หลายเดือนก่อน

      Gracias por tu comentario, si he pensado complementarlo con algo más algunos me han dicho que con roles y permisos, próximamente

  • @jotacamusic
    @jotacamusic ปีที่แล้ว +1

    Contenido expecifico y sencillo de comprender.
    Gracias amigo 🤜🤛

  • @eduardocuadraneyra
    @eduardocuadraneyra 5 หลายเดือนก่อน +1

    Muchas gracias, enserio super claro y bien explicado, buena metodología, siga así muy amable.

  • @raymox1018
    @raymox1018 6 หลายเดือนก่อน +1

    Excelente contenido me ayudaste demasiado. gracias master 😎😎👍👍

    • @programandocondancruise
      @programandocondancruise  6 หลายเดือนก่อน +1

      Genial 👍 me da gusto saber que te fue de ayuda mi aporte, éxito ! 😃

  • @macrossfan6804
    @macrossfan6804 3 หลายเดือนก่อน

    Otro buen video, ahora si aprendí más de sanctum y laravel. Solo tengo un detalle en el logout me marca error en "tokens()" en la línea auth()->user()->tokens()->delete(); método undefined y si marca error al ejecutar el método. He buscado los cambios para laravel 11 pero sigo sin corregir el error.

    • @yolberttorrealba
      @yolberttorrealba 3 หลายเดือนก่อน

      cambia esa linea por la siguiente
      Auth::user()->tokens()->delete();
      y coloca la siguiente linea al comienzo del archivo debajo del namespace
      use Illuminate\Support\Facades\Auth;

  • @anya.prianikova
    @anya.prianikova 11 หลายเดือนก่อน +2

    thank you!
    It didn't work for me yesterday.
    Or it worked, but I tested incorrectly :)
    Дякую!
    🇺🇦❤️

  • @yilsonalexismalambomadriga5376
    @yilsonalexismalambomadriga5376 ปีที่แล้ว +1

    gracias amigo explicas muy bien ya realice mi primer login de laravel con angular

  • @EmanuelViez
    @EmanuelViez ปีที่แล้ว +1

    Gracias, me sirvió de mucho. Ahora a ver cómo consumirla desde el front.

    • @programandocondancruise
      @programandocondancruise  ปีที่แล้ว +1

      Qué tal Emmanuel, ya está el video de cómo consumirla con VUE:
      Consumir API con VUE 3 Autenticación Sanctum Doble CRUD | Vite Bootstrap Pinia ChartJs DataTables
      th-cam.com/video/EPH3QHBJ19E/w-d-xo.html

    • @programandocondancruise
      @programandocondancruise  ปีที่แล้ว

      Tal vez la siguiente semana ya esté listo el video en donde se consume con React

  • @henryromero7492
    @henryromero7492 ปีที่แล้ว +2

    Oye vi tu video de Laravel 9 CRUD. Excelente!!!., te pregunto: acaba de salir la versión 10. Que tanto cambia?, Gracias

    • @programandocondancruise
      @programandocondancruise  ปีที่แล้ว +1

      Qué tal, en el CRUD como tal no cambia en nada, puedes intentarlo en la versión 10 y sin problema… puedes compararlo en este video, este ya es en V10

  •  4 หลายเดือนก่อน +1

    ¡Gracias!

  • @dariogutierrez7305
    @dariogutierrez7305 ปีที่แล้ว +1

    cuando uno sube la apl al hosting que se coloca en estos campos?
    SESSION_DOMAIN = ?
    SANCTUM_STATEFUL_DOMAINS = ?

    • @programandocondancruise
      @programandocondancruise  ปีที่แล้ว +1

      La url del sitio de donde se va a consumir, en algunos casos se consume el n el mismo dominio, entonces sería el dominio en el que se sube

  • @ricardojaimes9823
    @ricardojaimes9823 4 หลายเดือนก่อน

    Buen vídeo. Hay mucha diferencia en sanctum utilizando laravel 11 ahora que acaba de salir?, hay archivos que no veo en laravel 11

    • @programandocondancruise
      @programandocondancruise  4 หลายเดือนก่อน +1

      Qué tal, no hay mucha diferencia, de los archivos que no están es Handler.php ahí se añade la excepción de “No query results” pero lo podrías validar en el controlador, después subiré video actualizado a Laravel 11

  • @criscact
    @criscact ปีที่แล้ว

    Para las validaciones no sería mejor usar los ficheros Request que validan la petición? O para un ejemplo sencillo no haría falta?

  • @geniusdesign7306
    @geniusdesign7306 ปีที่แล้ว +1

    Tengo una pregunta, para los querys en la base de datos no seria mejor definir la relacion entre los modelos y usar las mismas consultas de eloquent en vez de escribir el query del join y todo eso?

    • @programandocondancruise
      @programandocondancruise  ปีที่แล้ว

      También se podría, cuando las tablas tengan más campos sin duda sería mejor hacer la relación en el modelo 👍

  •  4 หลายเดือนก่อน

    buenas ... en el minuto 35:20 hablas de modificar un archivo llamado cors.php , pasa que en laravel 11 no existe ese archivo , entonces necesito hacer esa modificación en otro lado o no hace falta modificar nada en el 11 ? perdón que te moleste , ya se que el tutorial es para laravel 10 , pero es que cuando instale laravel no me dejo elegir la versión y ahora ya estoy en el baile y me gustaria resolverlo con laravel 11. muchas gracias .

    • @programandocondancruise
      @programandocondancruise  4 หลายเดือนก่อน +1

      Qué tal, para manejar API en laravel 11 debes ejecutar: php artisan install:api
      Para los cors: php artisan config:publish cors
      Así podrás acceder a config/cors.php

    •  4 หลายเดือนก่อน +1

      @@programandocondancruise que genio que sos respondiendo al toque . Ya casi lo tengo andando Muchas gracias .

    • @programandocondancruise
      @programandocondancruise  4 หลายเดือนก่อน

      Va, espero si te salga 👍😃

  • @maytechnologies9504
    @maytechnologies9504 6 หลายเดือนก่อน +2

    NOTA: en el archivo Handler.php.. me obligo a insertar estos components :
    use Illuminate\Support\Facades\Route;
    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
    Fue la unica forma que logre ativar esta funcion Exception
    public function register(): void
    {
    $this->renderable(function (NotFoundHttpException $e, $request) {
    if ($request->is('api/departaments/*')) {
    return response()->json([
    'status' => false,
    'message' => 'The Department Selected id is invalid'
    ],404);
    }
    if ($request->is('api/employees/*')) {
    return response()->json([
    'status' => false,
    'message' => 'The Employee Selected id is invalid'
    ],404);
    }
    });
    }

    •  4 หลายเดือนก่อน

      yo en vez de hacer lo de handler lo resolvi de esta forma : public function show($id)
      {
      $department = Department::find($id);
      if (!$department) {
      return response()->json([
      'status' => false,
      'message' => 'Department not found'
      ], 404);
      }
      return response()->json([
      'status' => true,
      'data' => $department
      ]);
      }

    • @programandocondancruise
      @programandocondancruise  4 หลายเดือนก่อน +1

      @Adrianseimandi está bien 👍 … recuerda que aplica también para el update y el delete

  • @javtheghost3789
    @javtheghost3789 ปีที่แล้ว +1

    Que buen video me ha funcionado, me gustaria ver como podría manejar diferentes roles de usuario en la api

    • @programandocondancruise
      @programandocondancruise  ปีที่แล้ว +1

      Qué tal, si tengo en mente hacer videos para manejar roles tanto con api como con inertia

    • @HELMET10100
      @HELMET10100 ปีที่แล้ว

      ​@@programandocondancruise serían interesante los roles con Api, en inertia hay un poco documentación.

  • @mario.alejandro
    @mario.alejandro ปีที่แล้ว +1

    Gracias el video, muy claro. Pregunta... ¿Cómo se llama el tema que usas para VS Code? Se ve muy bien para laravel.

    • @programandocondancruise
      @programandocondancruise  ปีที่แล้ว +1

      Qué tal Mario… fue personalizado yo hice la combinación de colores 😅 tuve la intención de publicarlo pero no me acuerdo porque no lo hice solo quedó en el repositorio: github.com/DannCruise/DanCruzColor

  • @OsvGames
    @OsvGames ปีที่แล้ว

    una pregunta, para consumir la api tendremos que enviar el token por vue.js cada ves que hacemos una peticion?

    • @programandocondancruise
      @programandocondancruise  ปีที่แล้ว

      Así es, se tiene que enviar el token desde el cliente que lo consumas

  • @MesacMovies
    @MesacMovies 5 หลายเดือนก่อน

    Hola amigo como le podria hacer su mi tabla usuarios no es la q viene por defecto trae diferente nombre y diferente nombres de campos ? Gracias por el video

    • @programandocondancruise
      @programandocondancruise  5 หลายเดือนก่อน +1

      Qué tal, si creaste tu propio modelo sería similar pero usando el nombre de las columnas de tu propia tabla

  •  4 หลายเดือนก่อน

    Genial todo , peor que pena que todo esto en Laravel 11 ya no sirve porque hay varias diferencias y para uno que esta arrancando la verdad es un dolor de huevos porque así no se puede aprender , este es el gran problema de todos estos Framework que nunca terminan de cerrar y cada versión deja de ser compatible con la anterior en lapsos de tiempo muy cortos , te obliga a estar cambiando todo , no tienen continuidad .. todo lo que te "ahorras" desarrollando en tiempo con laravel , lo terminas gastando cuando tenes que ponerte a pasar las aplicaciones a versiones nuevas . Consulta: ¿tenes esto mismo , este tuto pero para laravel 11 ? . Gracias .

    • @programandocondancruise
      @programandocondancruise  4 หลายเดือนก่อน +1

      Qué tal, casi todo funciona en Laravel 11 con excepción la validación del not found que se hace en Exeptions/Handler.php … este proyecto si lo han hecho en laravel 11 y migrado de laravel 10 al 11 … Próximamente haré video de cómo pasarlo a Laravel 11 y también de cómo hacer una API desde cero en Laravel 11 ... la vdd si cuando uno está aprendiendo son difíciles estos cambios, te recomiendo aprender en alguna versión en específico y después te será fácil migrar entre versiones, ánimo amigo !

    •  4 หลายเดือนก่อน

      @@programandocondancruise Espero con ansias el video con laravel 11 ya que trate de hacer los cambios para que esto funcione con el 11 pero no lo logre , me gustaria poder hacer esto con laravel 11 de entrada , ya que es el mas actual . Saludos,. Gracias .

    •  4 หลายเดือนก่อน

      @@programandocondancruise lo del Handler lo deje de lado y resolvi de esta forma por ejemplo para department : public function show($id)
      {
      $department = Department::find($id);
      if (!$department) {
      return response()->json([
      'status' => false,
      'message' => 'Department not found'
      ], 404);
      }
      return response()->json([
      'status' => true,
      'data' => $department
      ]);
      }

  • @EstelaRangel-b4l
    @EstelaRangel-b4l 10 หลายเดือนก่อน

    Hola primero quiero agradecer, excelente tutorial... por otra parte te quería consultar... cuando intento verificar con postman me genera el siguiente error : Method Illuminate\\Validation\\Validator::validateRequiered does not exist ---- de casualidad sabes como solucionar esto, he intentado un mil cosas y nada. y de nuevo Gracias por tu gran aporte.

    • @programandocondancruise
      @programandocondancruise  10 หลายเดือนก่อน +1

      Hola! Podrías intentar colocándole un use :
      use Iluminate\Support\Facades\Validator;

  • @xSsiiko0x
    @xSsiiko0x ปีที่แล้ว

    consulta el \Validator me da error lo otro usaste php 8.2 o 8.1

    • @wilsonpachito5722
      @wilsonpachito5722 ปีที่แล้ว +2

      use Illuminate\Support\Facades\Validator; y listo

  • @alvelgo7024
    @alvelgo7024 ปีที่แล้ว

    Buenas. Gracias por el vídeo... la referencia a \Validator no se encuentra. No me deja seguir. ¿De dónde sale ese \Validator?

    • @leonelariasmolina7343
      @leonelariasmolina7343 11 หลายเดือนก่อน

      Me dio el mismo Error y el DB en la referencia del raw. Logro eliminar este erro?

    • @maytechnologies9504
      @maytechnologies9504 6 หลายเดือนก่อน +1

      el la parte de arriba de cada Models (Employee oh Department) debe importar ese soport con: use Iluminate\Support\Facades\Validator; de lo contrario la function Validator no tendra efecto.. otras Detalla escribir Validator con V "MAYUSCULA"

  • @catedgames160
    @catedgames160 10 หลายเดือนก่อน

    Hola me funciona los metodos de registrar y login pero al momento de implementar Route::middleware(['auth:sanctum'])->group(function () {
    Route::get('/status', [sio_controller::class, 'ctl_status']);
    }); me manda el error de "message": "Unauthenticated." aunque le ponga el token y los headers

    • @davidds86
      @davidds86 6 หลายเดือนก่อน

      Me pasa lo mismo!! 😟

    • @davidds86
      @davidds86 6 หลายเดือนก่อน +1

      Conseguiste resolverlo? no encuentro solución!!

    • @artroxxgaming
      @artroxxgaming 10 วันที่ผ่านมา

      Pudiste resolverlo?

  • @joserodriguez-d8b4v
    @joserodriguez-d8b4v ปีที่แล้ว

    hola. Intento eliminar un depto que tiene relacion y me devuelve un error horrilble: Illuminate\Database\QueryException: SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fai...
    ¿como seria el codigo en handle?
    gracias.

    • @programandocondancruise
      @programandocondancruise  ปีที่แล้ว +1

      Qué tal José, buena observación y error de mi parte, se podría validar en la misma función destroy de la siguiente manera:
      if (Employee::where('department_id', $department->id)->exists()) {
      return response()->json([
      'status' => false,
      'errors' => ['The department is busy']
      ],400);
      }

    • @programandocondancruise
      @programandocondancruise  ปีที่แล้ว +1

      Y hay que añadir el modelo en la parte de arriba:
      use App\Models\Employee;
      Muchas gracias por la observación

  • @davidemmanuel5057
    @davidemmanuel5057 4 หลายเดือนก่อน

    tengo el problema del cors y en laravel 11 ya no existe el kernel.php ... fuck

  • @calebizquierdo8096
    @calebizquierdo8096 ปีที่แล้ว

    Auth 27:20 min

  • @Daniel-r3v6s
    @Daniel-r3v6s 9 หลายเดือนก่อน

    Amigo como puedo consumir esa api en mi web, o alguien que me pueda explicar.

    • @programandocondancruise
      @programandocondancruise  9 หลายเดือนก่อน

      Qué tal, tengo otros 2 videos para consumirla, con vue y también react
      Consumir API con React Crud | Autenticación Sanctum | Vite Bootstrap ChartJs Paginación
      th-cam.com/video/IAPSskp89O4/w-d-xo.html

  • @matrixapaza
    @matrixapaza ปีที่แล้ว

    Si no tengo codigo fuente el video pierde 50% de atractivo. Me da pereza escribir, y un video casi siempre veo a doble de su velocidad

    • @anorlondocherokee2221
      @anorlondocherokee2221 ปีที่แล้ว +9

      pongase a programar y deje de andar copiando y pegando :V

    • @matrixapaza
      @matrixapaza ปีที่แล้ว

      @@anorlondocherokee2221 jjaja solo te daba consejo, tomalo o dejalo.

    • @DerWolf1979
      @DerWolf1979 11 หลายเดือนก่อน

      Alto vago (?(