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:
Tomar su llave secreta desde su panel de control
Generar el token usando la pesta帽a de autorizaci贸n de Postman
Seleccionar autorizaci贸n b谩sica (Basic Auth)
Colocar el ID cliente en el campo username
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:
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:
// En el controlador de clientes
$client_id = str_replace('$', '-', $client_id);
$secret_key = str_replace('$', '-', $secret_key);✅ Implementaci贸n en el Controlador
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
Recibimos el token desde las cabeceras
Recorremos todos los clientes registrados
Generamos el token para cada cliente
Comparamos con el token recibido
Si coinciden → mostramos los datos
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
Publicar un comentario