A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Acceso

16/18
Recursos

Aportes 8

Preguntas 8

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

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'
    ]);
  }
}

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 鈥榩ersonal_access_tokens鈥 busqu茅 y en la documentaci贸n me dice que hay que publicar el 鈥楽anctumServiceProvider鈥 luego de instalar sanctum y realizar la migracion que crea.
https://laravel.com/docs/8.x/sanctum

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 :(