30. Solicitando Token de Autorizaci贸n en Laravel

 

Solicitando Token de Autorizaci贸n en Laravel

馃攼 Protegiendo Nuestra API con Tokens de Autorizaci贸n

Actualmente nuestra API est谩 entregando registros sin ning煤n tipo de filtro de seguridad. No est谩 solicitando token de autorizaci贸n para mostrar los datos de la base de datos. En este tutorial aprenderemos a implementar este sistema de seguridad.

馃帴 Miniatura de la clase

2:13 / 17:00

El Problema Actual

Nuestra API est谩 exponiendo todos los cursos sin requerir autenticaci贸n, lo que representa un riesgo de seguridad significativo.

Soluci贸n: Implementando Autorizaci贸n por Token

馃攽 Proceso para el Cliente

El cliente debe seguir estos pasos:

  1. Tomar su llave secreta desde su panel de control

  2. Generar el token usando la pesta帽a de autorizaci贸n de Postman

  3. Seleccionar autorizaci贸n b谩sica (Basic Auth)

  4. Colocar el ID cliente en el campo username

  5. Colocar la llave secreta en el campo password

馃 ¿C贸mo se Genera el Token?

Postman genera el token usando Base64 encode en PHP. La estructura es:

php
base64_encode($client_id . ':' . $secret_key)

⚠️ Problema Com煤n: Caracteres Especiales

El signo $ puede causar problemas en la codificaci贸n. La soluci贸n es reemplazarlo antes de guardar en la base de datos:

php
// En el controlador de clientes
$client_id = str_replace('$', '-', $client_id);
$secret_key = str_replace('$', '-', $secret_key);

✅ Implementaci贸n en el Controlador

php
public function index(Request $request)
{
    $token = $request->header('Authorization');
    
    $clients = Client::all();
    
    foreach ($clients as $client) {
        $generatedToken = 'Basic ' . base64_encode($client->client_id . ':' . $client->secret_key);
        
        if ($generatedToken === $token) {
            $courses = Course::all();
            return response()->json([
                'status' => 200,
                'courses' => $courses,
                'total' => count($courses)
            ]);
        }
    }
    
    return response()->json([
        'status' => 404,
        'message' => 'No est谩 autorizado para recibir los registros'
    ], 404);
}

馃攳 Proceso de Verificaci贸n

  1. Recibimos el token desde las cabeceras

  2. Recorremos todos los clientes registrados

  3. Generamos el token para cada cliente

  4. Comparamos con el token recibido

  5. Si coinciden → mostramos los datos

  6. Si no coinciden → error 404

馃洝️ Resultado Final

Ahora nuestra API requiere obligatoriamente:

  • Registro previo del cliente

  • Generaci贸n de token v谩lido

  • Inclusi贸n del token en las cabeceras

Esto garantiza que solo usuarios autorizados puedan acceder a los datos de nuestra API.

#Laravel #APISecurity #TokenAuth #WebDevelopment #Backend

Comentarios

Entradas m谩s populares de este blog

crear controladores separados para API y Web

Laravel tanto para web como para API al mismo tiempo.

Creaci贸n de una API RESTful con Laravel (sin autenticaci贸n)