No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12 Días
16 Hrs
20 Min
15 Seg
Curso de API REST con Laravel

Curso de API REST con Laravel

Profesor Italo Morales F

Profesor Italo Morales F

Acceso

16/18
Recursos

Aportes 12

Preguntas 12

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Lo que me encanta de esto es que prácticamente ya está todo hecho, nosotros solo tenemos que implementarlo 😄 La autenticación basada en tokens básicamente es mandarle ese token al servidor, el servidor lo valida y te regresa una respuesta, y así en cada solicitud, aquí ya no hay sesiones tal cual, por eso el token tiene una duración (o al menos es recomendable que tenga una duración) 😄

Aun así, me pregunto cómo se haría esta validación con un sistema distribuido 🤔

Para que se guarde automaticamente el token en una variable dentro de un entorno de Postman, podemos utilizaar el siguente codigo en la solapa test de postman, esto en la ruta donde hacemos el login:

pm.test("Response should contains Token", function() {
    pm.response.to.have.jsonBody("token");
    var json = JSON.parse(responseBody)
    postman.setEnvironmentVariable("token", `${json.token}`)
})```

Luego en la ruta de la consulta, donde ingresamos el token ponemos:

Bearer {{token}}


Lo que hace el primer codigo es guardar automanticamente el valor del token obtenido por el login, para no estar copiando y pegando, esto agiliza a la hora de desarollar.

Les comparto el código del archivo,
App\Http\Controllers\Api\LoginController.php

<?php

namespace App\Http\Controllers\Api;

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

use App\Models\User;
use Illuminate\Support\Facades\Auth;

class LoginController extends Controller
{
  // Metodo que recibe el formulario
  public function login(Request $request)
  {
    $this->validateLogin($request);

    if (Auth::attempt($request->only('email', 'password'))) {
      return response()->json([
        'token' => $request->user()->createToken($request->name)->plainTextToken,
        'message' => 'Success'
      ]);
    }

    return response()->json([
      'message' => 'Unauthorized'
    ], 401);
  }

  // Metodo que verifica que llegue la informacion correctamente
  public function validateLogin(Request $request)
  {
    return $request->validate([
      'email' => 'required|email',
      'password' => 'required',
      'name' => 'required'
    ]);
  }
}

A mi no me autenticaba, lo resolví utilizando una variable de por medio:

$credentials = request(['email', 'password']);

    if(Auth::attempt($credentials)){
	...
}

Por si le sive a alguien

Como haría si necesito que la persona me pase esos datos para el login, y que mediante esto, Laravel procese ese token devolviendo lo que el usuario quiere ver.

Es decir, que no tenga el usuario que ir a copiar ese token si no que Laravel ya procese la solicitud. Y pues claro, en la respuesta que le de Laravel devolver el token también

Cuando llegué a este punto me informaba que no encontraba la tabla ‘personal_access_tokens’ busqué y en la documentación me dice que hay que publicar el ‘SanctumServiceProvider’ luego de instalar sanctum y realizar la migracion que crea.
https://laravel.com/docs/8.x/sanctum

por qué no hacer el login con breeze??

A la fecha (07/2023), intente utilizar PostmanVscode y no funciona con los token preferentemente usen la aplicacion como tal de Postman

login

Para aquellos que quieran implementar su autenticación les recomiendo leer en la documentación oficial Mobile Application Authentication .

Pueden hacer las pruebas con postman enviando el token que generen en:

/api/sanctum/token

Recuerden agregar que la respuesta del servidor sea un json en las cabeceras.

Y en auth tienen que usar Bearer Token.
Saludos!.

se puede decir que es identico que usar passport, solo que sanctum no usa oauth

tengo que consumir la api de webex de cisco no lo logro :(