Alguien dijo… Curso de Criptografia?
Introducción a OAuth 2.0 y OIDC
OAuth y OpenID Connect: Autenticación y Autorización Básica
¿Qué es la autenticación?
Autorización y Control de Acceso Basado en Roles
Protocolos Open Authorization y OpenID Connect: Alternativas y Comparación
Protección de Endpoints con Autenticación y Autorización Básica
Flujo de Open Authorization y Open ID con Discord
JSON Web Tokens
JSON Web Tokens: Conceptos, Ventajas y Algoritmos de Firma
Comparación de Sesiones y JSON Web Tokens en Autenticación
Firmado de JSON Web Tokens con Librería JWT en Node.js
Verificación de JSON Web Tokens en Node.js
Quiz: JSON Web Tokens
Open Authorization 2.0
Implementación de flujos OAuth 2.0 con APIs populares
Flujos de Autorización en OAuth 2.0: Conceptos y Funcionamiento
Elección del Flujo Oauth 2.0 según Roles del Cliente y Servidor
Implementación de Authorization Code Flow con Spotify y React
Implementación de Authorization CodeFlow con Proofkit en Twitter API
Implementación de Implicit Flow con Twitch en React
Implementación de Client Credentials Flow en Discord
Implementación de Resource Owner Password Flow con Auth0
Quiz: Open Authorization 2.0
Open ID Connect
OpenID Connect: Autenticación sobre OAuth paso a paso
Implementación de Implicit Flow con For Post usando Auth0
Implementación del Hybrid Flow en Autenticación de Aplicaciones
Quiz: Open ID Connect
OAuth y OIDC en producción
Buenas prácticas y riesgos de los JSON Web Tokens (JWT)
Implementación Segura de Open Authorization (OAuth)
Autenticación Rápida con NextAlt y GitHub en Next.js
Curso Práctico de Autenticación con Outh Zero
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
La verificación de un JSON Web Token (JWT) es un paso crucial para asegurar la autenticidad y seguridad de las comunicaciones. Utilizando una librería especial, podemos comprobar si el token que recibimos ha sido firmado correctamente y no ha sido alterado. Aquí te explicamos el proceso detallado y simplificado para verificar un JWT en Node.js.
// Ejemplo de cómo verificar un token en Node.js
const jwt = require('jsonwebtoken');
// Token y secreto
const token = 'your-jwt-token';
const secret = 'your-secret';
// Verificación
jwt.verify(token, secret, (err, decoded) => {
if (err) {
console.error('Error al verificar el token:', err.message);
} else {
console.log('Token verificado:', decoded);
}
});
El firmado asimétrico utiliza un par de llaves: una privada para firmar el token y una pública para verificarlo. Esto añade un nivel extra de seguridad, ya que la llave privada nunca se expone.
filesystem
de Node.js para leer tu llave privada desde un archivo.const fs = require('fs');
const privateKey = fs.readFileSync('path/to/private.pem', 'utf8');
// Firmado del token
const signOptions = { algorithm: 'RS256' };
const token = jwt.sign(payload, privateKey, signOptions);
const publicKey = fs.readFileSync('path/to/public.pem', 'utf8');
// Verificación
jwt.verify(token, publicKey, (err, decoded) => {
if (err) {
console.error('Error al verificar token asimétrico:', err.message);
} else {
console.log('Token verificado:', decoded);
}
});
Para profundizar más, se te anima a implementar el proceso de verificación de JWT en otro lenguaje distinto a Node.js. Este ejercicio te permitirá entender mejor los principios de la criptografía involucrados y mejorar tus habilidades multiplataforma.
¡Continúa explorando y aprendiendo más sobre autenticación segura! Este conocimiento es clave para construir aplicaciones más robustas y seguras.
Aportes 11
Preguntas 1
Alguien dijo… Curso de Criptografia?
queremos curso de criptografia
quien dijo miedo al curso de criptografia?
Hay que darle al curso de criptografía, sin miedo al exito.
Vamos por el curso de criptografia
por qué al verificar solo es necesario la llave pública?
es decir, imagina que cambia el token, un usuario decodifca el payload, lo cambia y lo vuelve a codificar, si se verifica solo con la public no es peligroso? es decir, en ese caso tendriamos que cuidar la llave publica tanto asi como cuidamos la privada y eso suena medio raro la verdad.
Este es el proceso de verificación del jwt de manera simetrica en python para un backend en FastAPI
# Decode function debe devolver informacion teniendo el token
def decodeJWT(token):
try:
payload = jwt.decode(token, JWT_SECRET, algorithm=JWT_ALGORITHM)
return payload
except jwt.ExpiredSignatureError:
raise HTTPException(status_code=401, detail='Signature has expired')
except jwt.InvalidTokenError as e:
raise HTTPException(status_code=401, detail='Invalid token')
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?