Ir para o conteúdo do rodapé
AJUDA DO PYTHON

PyJWT em Python (Como funciona: um guia para desenvolvedores)

Dentre as bibliotecas Python, PyJWT é a mais popular, oferecendo uma maneira prática de codificar e decodificar JSON Web Tokens (JWTs) em projetos Python. Os JWTs são um meio compacto e seguro para URLs de representar reivindicações a serem transferidas entre duas partes. O pacote PyJWT facilita a implementação de tokens web JSON em Python. Os tokens JWT são amplamente utilizados para autenticação e troca de informações em aplicações web. O pacote possui documentação online completa para auxiliar os desenvolvedores. Neste artigo, também analisaremos o IronPDF da IronSoftware para gerar documentos PDF posteriormente.

Principais características

  1. Codificação e decodificação de JWT: O PyJWT permite codificar e decodificar JWTs facilmente. Você pode criar um token codificando uma carga útil com uma chave secreta e um algoritmo e, posteriormente, decodificá-la para verificar a carga útil.
  2. Suporte para múltiplos algoritmos: PyJWT suporta diversos algoritmos para assinatura de tokens, incluindo HMAC (HS256, HS384, HS512) e RSA (RS256, RS384, RS512). Suporta algoritmos simétricos e assimétricos.
  3. Validação de declarações: A biblioteca oferece suporte integrado para validar declarações padrão, como iss (emissor), sub (assunto), aud (público-alvo) e exp (tempo de expiração), auxiliando na autenticação segura baseada em token.

Instalação

Para instalar o PyJWT , você pode usar o pip:

pip install pyjwt
pip install pyjwt
SHELL

Para suporte criptográfico adicional, você pode instalá-lo com a opção crypto:

pip install pyjwt[crypto]
pip install pyjwt[crypto]
SHELL

Uso básico

Aqui está um exemplo simples de como usar PyJWT em uma implementação em Python:

import jwt

# Encoding a JWT
payload = {"Message": "IronPDF is an Awesome PDF library"}
secret = "your-256-bit-secret"
# Create the JWT token with a secret key using HS256 algorithm
token = jwt.encode(payload, secret, algorithm="HS256")
print(token)

# Decoding a JWT
# Decode the JWT token to retrieve the original payload
decoded_payload = jwt.decode(token, secret, algorithms=["HS256"])
print(decoded_payload)
import jwt

# Encoding a JWT
payload = {"Message": "IronPDF is an Awesome PDF library"}
secret = "your-256-bit-secret"
# Create the JWT token with a secret key using HS256 algorithm
token = jwt.encode(payload, secret, algorithm="HS256")
print(token)

# Decoding a JWT
# Decode the JWT token to retrieve the original payload
decoded_payload = jwt.decode(token, secret, algorithms=["HS256"])
print(decoded_payload)
PYTHON

Neste exemplo, criamos um JWT codificando uma carga útil com uma chave secreta usando o algoritmo HS256. Em seguida, decodificamos o token para recuperar a carga útil original.

Saída

PyJWT Python (Como funciona: um guia para desenvolvedores): Figura 1 - Exemplo de payload de resposta após a decodificação

Casos de uso

  1. Autenticação: Os JWTs são comumente usados ​​para autenticação em aplicações web. Após o usuário efetuar o login, o servidor gera um JWT e retorna o token assinado para o cliente. O cliente pode verificar a identidade do usuário usando esse token e incluí-lo em solicitações subsequentes.
  2. Troca de informações: As partes podem transmitir informações com segurança usando JWTs. A carga útil pode incluir quaisquer dados; A assinatura do token garante sua integridade.

Apresentando o IronPDF

PyJWT Python (Como funciona: um guia para desenvolvedores): Figura 2 - IronPDF for Python: a biblioteca PDF for Python

IronPDF é uma poderosa biblioteca Python para criar, editar e assinar PDFs usando HTML, CSS, imagens e JavaScript. Oferece desempenho de alta qualidade utilizando o mínimo de memória. Os usuários podem gerar PDFs a partir de HTML , mesclar ou dividir documentos PDF, extrair texto e imagens de PDFs , aplicar marcas d'água , rasterizar um PDF para formatos de imagem como JPEG e PNG, criptografar arquivos PDF e muito mais. O IronPDF oferece uma ampla gama de operações com PDFs.

Principais características do IronPDF

Conversão de HTML para PDF

Os usuários podem converter arquivos HTML, strings HTML e URLs em PDFs. Por exemplo, renderize uma página da web como um PDF usando o renderizador de PDF para Chrome do IronPDF.

Suporte multiplataforma

O IronPDF foi projetado para versões do Python 3 ou superiores e funciona em plataformas Windows, Mac, Linux ou na nuvem.

O IronPDF também está disponível em .NET , Java , Python e Node.js

Edição e assinatura

O usuário pode definir propriedades, adicionar segurança com senhas e permissões e aplicar assinaturas digitais a PDFs usando o IronPDF.

Modelos de página e configurações

O IronPDF permite personalizar documentos PDF com cabeçalhos, rodapés, números de página e margens ajustáveis. Também oferece suporte a layouts responsivos e tamanhos de papel personalizados.

Conformidade com as normas

O pacote IronPDF está em conformidade com os padrões PDF, como PDF/A e PDF/UA. Suporta codificação de caracteres UTF-8 e lida com recursos como imagens, CSS e fontes.

Gere documentos PDF usando IronPDF e PyJWT.

Pré-requisitos do IronPDF

  1. O IronPDF utiliza o .NET 6.0 como tecnologia subjacente. Portanto, certifique-se de que o ambiente de execução .NET 6.0 esteja instalado em seu sistema.
  2. Python 3.0+: Você precisa ter o Python versão 3 ou posterior instalado.
  3. Pip: Instale o instalador de pacotes Python pip para instalar o pacote IronPDF .

Para começar, vamos criar um arquivo Python na raiz do projeto para adicionar nossos scripts. Neste exemplo, usaremos o Visual Studio Code como editor de código.

Abra o Visual Studio Code e crie um arquivo, pyjwtDemo.py.

Instale a biblioteca IronPDF :

pip install ironpdf
pip install pyjwt
pip install ironpdf
pip install pyjwt
SHELL

Em seguida, adicione o código abaixo para demonstrar o uso dos pacotes Python IronPDF e PyJWT :

import jwt
from ironpdf import ChromePdfRenderer, License

# Apply your license key
License.LicenseKey = "your-license-key"

# Initialize HTML content to be converted into PDF
content = "<h1>Awesome IronPDF with PyJWT</h1>"
content += "<h2>Encoding a JWT</h2>"

# Encoding a JWT
payload = {"Message": "IronPDF is an Awesome PDF library"}
secret = "your-256-bit-secret"  # Secret key for signing
token = jwt.encode(payload, secret, algorithm="HS256")
print(token)  # Print the generated JWT

# Append details to the HTML content
content += f"<p>Message: {payload['Message']}</p>"
content += f"<p>Secret: {secret}</p>"
content += f"<p>Generated Token: {token}</p>"

# Decoding a JWT
content += "<h2>Decoding a JWT</h2>"
decoded_payload = jwt.decode(token, secret, algorithms=["HS256"])
print(decoded_payload)  # Print the decoded payload

# Append decoded payload details to the HTML content
content += f"<p>Decoded Token: {decoded_payload}</p>"

# Generate PDF using IronPDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(content)

# Export PDF to a file
pdf.SaveAs("Demo-pyjwt.pdf")
import jwt
from ironpdf import ChromePdfRenderer, License

# Apply your license key
License.LicenseKey = "your-license-key"

# Initialize HTML content to be converted into PDF
content = "<h1>Awesome IronPDF with PyJWT</h1>"
content += "<h2>Encoding a JWT</h2>"

# Encoding a JWT
payload = {"Message": "IronPDF is an Awesome PDF library"}
secret = "your-256-bit-secret"  # Secret key for signing
token = jwt.encode(payload, secret, algorithm="HS256")
print(token)  # Print the generated JWT

# Append details to the HTML content
content += f"<p>Message: {payload['Message']}</p>"
content += f"<p>Secret: {secret}</p>"
content += f"<p>Generated Token: {token}</p>"

# Decoding a JWT
content += "<h2>Decoding a JWT</h2>"
decoded_payload = jwt.decode(token, secret, algorithms=["HS256"])
print(decoded_payload)  # Print the decoded payload

# Append decoded payload details to the HTML content
content += f"<p>Decoded Token: {decoded_payload}</p>"

# Generate PDF using IronPDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(content)

# Export PDF to a file
pdf.SaveAs("Demo-pyjwt.pdf")
PYTHON

Explicação do código

Este trecho de código demonstra como usar a biblioteca jwt (JSON Web Token) juntamente com o IronPDF para criar um documento PDF que inclui exemplos de codificação e decodificação de JWTs.

A seguir, apresentamos uma visão geral das funções de cada componente de código:

  1. Importação e configuração da chave de licença:

    Importa a biblioteca jwt para funcionalidade de JSON Web Token e a biblioteca ChromePdfRenderer do IronPDF para geração de PDF. Define a chave de licença do IronPDF para ativar seus recursos.

  2. Configuração do conteúdo HTML:

    Inicializa a variável content com a marcação HTML a ser incluída no documento PDF, ilustrando diferentes etapas do processo.

  3. Codificando um JWT:

    • Define um dicionário de payload contendo dados a serem codificados no JWT (payload).
    • Especifica uma chave secreta (secret) para assinar o JWT com o algoritmo HMAC usando SHA-256 (HS256).
    • Gera um token JWT usando a função jwt.encode() e o imprime.
  4. Decodificando um JWT:

    • Adiciona marcação HTML para demonstrar a decodificação de JWT.
    • Decodifica o JWT gerado anteriormente (token) usando a função jwt.decode() com o mesmo segredo e algoritmo usados ​​para codificação.
  5. Geração de PDF:

    • Ele usa ChromePdfRenderer para renderizar a string HTML content em um documento PDF e salva o arquivo PDF gerado como "Demo-pyjwt.pdf".

Essa configuração permite a criação de um documento PDF que demonstra o uso de JWTs com o IronPDF para gerar PDFs de qualidade profissional.

Saída

PyJWT Python (Como funciona: um guia para desenvolvedores): Figura 3 - Exemplo de saída do console

PDF

PyJWT Python (Como funciona: um guia para desenvolvedores): Figura 4 - Exemplo de saída em PDF utilizando IronPDF

Licença IronPDF

PyJWT Python (Como funciona: um guia para desenvolvedores): Figura 5 - Página de licenciamento do IronPDF

O IronPDF oferece uma chave de licença de avaliação para permitir que os usuários experimentem seus diversos recursos antes de comprar.

Insira a chave de licença no início do script antes de usar o pacote IronPDF :

from ironpdf import License

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

# Apply your license key
License.LicenseKey = "your-key"
PYTHON

Conclusão

PyJWT é uma biblioteca poderosa e flexível para trabalhar com JSON Web Tokens em Python. Sua facilidade de uso e suporte a diversos algoritmos o tornam uma escolha popular para implementar autenticação baseada em tokens e troca segura de informações em aplicações web. Por outro lado, o IronPDF é uma biblioteca de geração de PDF versátil e rica em recursos que ajudará a documentar os resultados de forma padronizada. Ambas as bibliotecas podem ser extremamente úteis para desenvolvedores aprimorarem suas habilidades.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim