token
¿Qué es un token?
Un token es una cadena de caracteres que representa información específica, como credenciales de acceso, identificadores únicos o datos de sesión. Se utilizan comúnmente en:
Autenticación y autorización (JWT, tokens de acceso)
Protección CSRF (Cross-Site Request Forgery)
Identificación única de recursos
Contraseñas de un solo uso
Ejemplo pequeño en PHP: Token de autenticación simple
<?php
// Función para generar un token aleatorio
function generarToken($longitud = 32) {
return bin2hex(random_bytes($longitud));
}
// Generar un token
$token = generarToken();
echo "Token generado: " . $token . "\n\n";
// Simular verificación del token (en una aplicación real se guardaría en base de datos)
function verificarToken($tokenAlmacenado, $tokenRecibido) {
return hash_equals($tokenAlmacenado, $tokenRecibido);
}
// Ejemplo de uso
$tokenAlmacenado = $token; // En la práctica, esto vendría de una base de datos
$tokenUsuario = $token; // Token que envía el usuario
if (verificarToken($tokenAlmacenado, $tokenUsuario)) {
echo "✅ Token válido - Acceso permitido";
} else {
echo "❌ Token inválido - Acceso denegado";
}
?>Salida esperada:
Token generado: 1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b
✅ Token válido - Acceso permitidoEjemplo con token JWT (más realista)
<?php
// Ejemplo simplificado de un token JWT
function crearJWT($datosUsuario) {
$header = base64_encode(json_encode(['alg' => 'HS256', 'typ' => 'JWT']));
$payload = base64_encode(json_encode([
'user_id' => $datosUsuario['id'],
'username' => $datosUsuario['username'],
'exp' => time() + 3600 // Expira en 1 hora
]));
$firma = base64_encode(hash_hmac('sha256', "$header.$payload", 'clave_secreta', true));
return "$header.$payload.$firma";
}
// Datos de ejemplo
$usuario = ['id' => 123, 'username' => 'juan123'];
$jwtToken = crearJWT($usuario);
echo "Token JWT: " . $jwtToken;
?>Los tokens son esenciales para la seguridad web moderna, permitiendo autenticación stateless y protección contra ataques.
Comentarios
Publicar un comentario