AYUDA DE PYTHON

PyJWT Python (Cómo funciona: una guía para desarrolladores)

Kannaopat Udonpant
Kannapat Udonpant
26 de febrero, 2025
Compartir:

Introducción

Entre las bibliotecas de Python,PyJWTes la biblioteca de Python más popular que proporciona una forma conveniente de codificar y decodificar JSON Web Tokens(JWTs)en proyectos de Python. Los JWT son un medio compacto y seguro para URLs de representar reclamaciones que se transferirán entre dos partes. El paquete pyjwt facilita la implementación de tokens web JSON en Python. Los tokens JWT son ampliamente utilizados para la autenticación e intercambio de información en aplicaciones web. El paquete tiene abundante documentación en línea para apoyar a los desarrolladores. En este artículo, también examinaremosIronPDF deIronSoftwarepara generar documentos PDF más tarde.

Características principales

  1. Codificación y Decodificación JWT: PyJWT te permite codificar y decodificar JWTs fácilmente. Puedes crear un token codificando una carga útil con una clave secreta y un algoritmo, y luego decodificarlo para verificar la carga útil.

  2. Soporte para Múltiples Algoritmos: PyJWT admite varios algoritmos para la firma de tokens, incluido HMAC(HS256, HS384, HS512)y RSA(RS256, RS384, RS512). Admite tanto algoritmos simétricos como algoritmos asimétricos.

  3. Validación de Reclamaciones: La biblioteca ofrece soporte integrado para validar reclamaciones estándar como es(emisor), sub(asunto), aud (audiencia), y exp(tiempo de expiración), como la autenticación segura basada en tokens.

Instalación

Para instalarPyJWT, puedes usar pip:

pip install pyjwt
PYTHON

Para soporte criptográfico adicional, puedes instalarlo con la opción crypto:

pip install pyjwt[crypto]
PYTHON

Uso básico

A continuación se muestra un ejemplo sencillo de cómo utilizarPyJWTimplementación en Python:

import jwt
# Encoding a JWT
payload = {"Message": "IronPDF is Awesome PDF library"}
secret = "your-256-bit-secret"
token = jwt.encode(payload, secret, algorithm="HS256")
print(token)
# Decoding a JWT
decoded_payload = jwt.decode(token, secret, algorithms=["HS256"])
print(decoded_payload)
PYTHON

En este ejemplo, creamos un JWT codificando una carga útil con una clave secreta utilizando el algoritmo HS256. A continuación, decodificamos el token para recuperar la carga útil original.

Salida

PyJWT Python(Cómo Funciona: Una Guía para Desarrolladores): Figura 1 - Ejemplo de carga útil de respuesta después de la decodificación

Casos prácticos

  1. Autenticación: Los JWTs se emplean comúnmente para la autenticación en aplicaciones web. Después de que un usuario inicia sesión, el servidor genera un JWT y devuelve el token firmado al cliente. El cliente puede verificar la identidad del usuario utilizando este token e incluir el token en solicitudes subsecuentes.

  2. Intercambio de Información: Las partes pueden transmitir información de forma segura utilizando JWTs. La carga útil puede incluir cualquier dato; la firma del token garantiza su integridad.

Presentación de IronPDF

PyJWT Python(Cómo funciona: Una guía para desarrolladores): Figura 2 - IronPDF for Python: La biblioteca de PDF de Python

IronPDFes una potente biblioteca de Python para crear, editar y firmar PDFs utilizando HTML, CSS, imágenes y JavaScript. Proporciona un rendimiento de alta calidad mientras utiliza una cantidad mínima de memoria. Los usuarios puedengenerar PDF a partir de HTML, fusionar odividir Documentos PDF,extraer texto e imágenes de PDF, solicitarmarcas de agua, rasterizar un PDF a imagen formatos como JPEG y PNG,encriptar archivos PDFy mucho más. IronPDF ofrece una amplia gama de operaciones con PDF.

Principales características de IronPDF

Conversión de HTML a PDF

Los usuarios pueden convertir archivos HTML, cadenas HTML y URLs a PDFs. Por ejemplo,convertir una página web en PDFutilizando el renderizador PDF de Chrome de IronPDF de IronPDF.

Soporte multiplataforma

IronPDF está diseñado para versiones de Python 3+ y se ejecuta en Windows, Mac, Linux o plataformas en la nube.

IronPDF también está disponible en.NET, Java, Pythony**Nodo.js.

Edición y firma

El usuario puede establecer propiedades, añadir seguridad con contraseñas y permisos, y aplicar firmas digitales a PDFs usando IronPDF.

Plantillas de página y configuración

IronPDF le permite personalizar documentos PDF conencabezados, pies de página, números de página y márgenes ajustables. También admite diseños responsivos y tamaños de papel personalizados.

Cumplimiento de las normas

El paquete de IronPDF también cumple con los estándares PDF como PDF/A y PDF/UA. AdmiteCodificación de caracteres UTF-8 y maneja activos como imágenes, CSS y fuentes.

Generar documentos PDF utilizando IronPDF y PyJWT

Requisitos previos de IronPDF

1.IronPDF utiliza .NET 6.0 como tecnología subyacente. Por lo tanto, asegúrese de queTiempo de ejecución de .NET 6.0 está instalado en su sistema.

  1. Python 3.0+: Necesita tener instalada la versión 3 o posterior de Python.

  2. Pip: Instalar el gestor de paquetes de Pythonpip para instalar el paquete IronPDF.

    Para comenzar, vamos a crear un archivo Python en la raíz del proyecto para agregar nuestros scripts. Para este ejemplo, usamosCódigo de Visual Studio como editor de código.

    Abra Visual Studio Code y cree un archivo, pyjwtDemo.py.

    Instalar la biblioteca IronPDF:

pip install ironpdf
pip install pyjwt
PYTHON

A continuación, agregue el siguiente código para demostrar el uso de IronPDF y PyJWTpaquetes de Python

import jwt
from ironpdf import * 
# Apply your license key
License.LicenseKey = "your key"
# Create a PDF from a HTML string using Python
content = "<h1>Awesome IronPDF with PyJWT</h1>"
content += "<h2> Encoding a JWT</h2>"
# Encoding a JWT
payload = {"Message": "IronPDF is Awesome PDF library"}
secret = "your-256-bit-secret" # private key
token = jwt.encode(payload, secret, algorithm="HS256")
print(token) # public key
content += "<p>Message:IronPDF is Awesome PDF library</p>"
content += "<p>secret:your-256-bit-secret</p>" 
content += "<p>Generated Token:"+str(token)+"</p>"
# Decoding a JWT
content += "<h2> Decoding a JWT</h2>"
decoded_payload = jwt.decode(token, secret, algorithms=["HS256"])
print(decoded_payload)
content += "<p>jwt.decode(token, secret, algorithms=[HS256]</p>"
content += "<p>Decoded Token:"+str(decoded_payload)+"</p>"
#Generate PDF using IronPDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(content)
    # Export to a file or Stream
pdf.SaveAs("Demo-pyjwt.pdf")
PYTHON

Código Explicación

Este fragmento de código demuestra cómo usar el `jwt`(Token Web JSON)biblioteca junto con IronPDF para crear un documento PDF que incluya ejemplos de codificación y decodificación de JWTs.

A continuación se presenta una visión general de las funciones de cada componente del código:

  1. Importaciones y Configuración de Clave de Licencia:

    Importa la biblioteca `jwt` para la funcionalidad de JSON Web Token y `ChromePdfRenderer` de IronPDF para la generación de PDF.

    Establece la clave de licencia para IronPDF para habilitar sus funciones. 2. Configuración del contenido HTML:

    Inicializa la variable `content` con el marcado HTML para ser incluido en el documento PDF.3. Codificación de un JWT:

    Define un diccionario de payload que contiene datos para ser codificados en el JWT(carga útil). Especifica una clave secreta(`secreto`)para firmar el JWT con el algoritmo HMAC usando SHA-256(`HS256`). Genera un token JWT usando `jwt.encode`()` function y lo imprime. 4. Decodificación de un JWT:

    Agrega marcado HTML para demostrar la decodificación de JWT. Decodifica el JWT previamente generado(`token`)usando jwt.decode()\ función con el mismo secreto y algoritmo utilizado para la codificación.5. Generación de PDF:

    Utiliza ChromePdfRenderer para renderizar la cadena HTML content en un documento PDF y guarda el archivo PDF generado como "Demo-pyjwt.pdf". Esta configuración permite la creación de un documento PDF que muestra el uso de JWTs con IronPDF para generar PDFs de calidad profesional.

Salida

PyJWT Python(Cómo Funciona: Una Guía para Desarrolladores): Figura 3 - Ejemplo de salida de consola

PDF

PyJWT Python(Cómo funciona: Una guía para desarrolladores): Figura 4 - Ejemplo de salida PDF utilizando IronPDF

Licencia IronPDF

PyJWT Python(Cómo funciona: una guía para desarrolladores): Figura 5 - Página de licencias de IronPDF

IronPDFclave de licencia para permitir a los usuarios probar sus extensas características antes de comprar.

Coloque la clave de licencia al principio del script antes de utilizarPaquete IronPDF:

from ironpdf import * 
# Apply your license key
License.LicenseKey = "key"
PYTHON

Conclusión

PyJWT es una biblioteca poderosa y flexible para trabajar con JSON Web Tokens en Python. Su facilidad de uso y soporte para varios algoritmos lo convierten en una opción popular para implementar la autenticación basada en tokens e intercambio seguro de información en aplicaciones web. Por otro lado, IronPDF es una biblioteca versátil y rica en funciones para la generación de PDF que ayudará a documentar los resultados de una manera estándar. Ambas bibliotecas pueden hacer maravillas para que los desarrolladores mejoren sus habilidades.

Kannaopat Udonpant
Ingeniero de software
Antes de convertirse en ingeniero de software, Kannapat realizó un doctorado en Recursos Medioambientales en la Universidad de Hokkaido (Japón). Mientras cursaba su licenciatura, Kannapat también se convirtió en miembro del Laboratorio de Robótica Vehicular, que forma parte del Departamento de Ingeniería de Bioproducción. En 2022, aprovechó sus conocimientos de C# para unirse al equipo de ingeniería de Iron Software, donde se centra en IronPDF. Kannapat valora su trabajo porque aprende directamente del desarrollador que escribe la mayor parte del código utilizado en IronPDF. Además del aprendizaje entre iguales, Kannapat disfruta del aspecto social de trabajar en Iron Software. Cuando no está escribiendo código o documentación, Kannapat suele jugar con su PS5 o volver a ver The Last of Us.
SIGUIENTE >
HTTPX Python (Cómo funciona: una guía para desarrolladores)

¿Listo para empezar? Versión: 2025.3 acaba de salir

Ver licencias >