awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
jpadilla avatar

jpadilla/pyjwt

0
View on GitHub↗
5,598 stars·725 forks·Python·mit·28 viewspyjwt.readthedocs.io↗

Pyjwt

PyJWT is a Python library for encoding, decoding, and verifying JSON Web Tokens (JWTs). It provides comprehensive JWT functionality including algorithm-agnostic signing and verification, supporting both symmetric HMAC shared-secret cryptography and asymmetric RSA/ECDSA public-key cryptography for flexible trust models.

The library implements a claim-based validation pipeline that checks issuer, audience, expiration, and other time-based claims during token decoding, with configurable clock skew tolerance for distributed systems. It requires callers to explicitly specify allowed signing algorithms, preventing algorithm confusion attacks, and converts Python dictionaries into compact JSON strings before signing.

PyJWT handles the full token lifecycle, from signing payloads with digital signatures to verifying token authenticity and integrity. It supports encoding tokens with cryptographic signatures and decoding them back into their original payloads while confirming they have not been tampered with.

Features

  • JSON Web Tokens - Implements the JSON Web Token standard for creating and validating signed tokens.
  • Asymmetric Signing - Provides RSA and ECDSA asymmetric signing for JSON Web Tokens using public-key cryptography.
  • Signed JWT Generation - Creates and validates signed JWTs for secure data exchange between parties.
  • Python JWT Libraries - Provides a Python library for signing and verifying JSON Web Tokens with symmetric and asymmetric algorithms.
  • Symmetric Signing - Verifies token integrity using HMAC digests computed with a shared secret key.
  • Dual Symmetric and Asymmetric Support - Supports both HMAC shared-secret and RSA/ECDSA public-key cryptography for flexible trust models.
  • Configurable Signing Algorithms - Provides configurable algorithm selection for signing and verifying JSON Web Tokens.
  • Algorithm Confusion Prevention - Prevents algorithm confusion attacks by requiring explicit specification of allowed signing algorithms.
  • Pluggable Algorithm Dispatch - Dispatches signing and verification to pluggable cryptographic backends selected at encode or decode time.
  • JWT Claim Validation - Validates standard JWT claims like expiration, issuer, and audience during token decoding.
  • Pluggable Algorithm Dispatch - Dispatches signing and verification to pluggable cryptographic backends selected at encode or decode time.
  • Pluggable Cryptographic Backends - Dispatches signing and verification to pluggable cryptographic backends selected at encode or decode time.
  • Token Signature Verification - Verifies token signatures using public keys to confirm the signer's identity.
  • Token Signing Operations - Signs tokens with private keys to guarantee authenticity and integrity.
  • Clock Skew Tolerances - Applies configurable clock skew tolerance to time-sensitive JWT claims for distributed systems.
  • Expiration Claim Validators - Checks the expiration claim against the current time during decode, rejecting expired tokens automatically.
  • Issuer and Audience Validators - Validates issuer and audience claims against caller-provided values to enforce token scope and origin.
  • Authentication - Listed in the “Authentication” section of the Awesome Python awesome list.
  • Authentication and Permissions - JSON Web Token implementation in Python.
  • Authentication Libraries - Implementation of JSON Web Token standards.

Star history

Star history chart for jpadilla/pyjwtStar history chart for jpadilla/pyjwt

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does jpadilla/pyjwt do?

PyJWT is a Python library for encoding, decoding, and verifying JSON Web Tokens (JWTs). It provides comprehensive JWT functionality including algorithm-agnostic signing and verification, supporting both symmetric HMAC shared-secret cryptography and asymmetric RSA/ECDSA public-key cryptography for flexible trust models.

What are the main features of jpadilla/pyjwt?

The main features of jpadilla/pyjwt are: JSON Web Tokens, Asymmetric Signing, Signed JWT Generation, Python JWT Libraries, Symmetric Signing, Dual Symmetric and Asymmetric Support, Configurable Signing Algorithms, Algorithm Confusion Prevention.

Which projects share features with jpadilla/pyjwt?

Projects with overlapping indexed features include: auth0/java-jwt — This is a Java library for creating and verifying JSON Web Tokens (JWTs), supporting multiple cryptographic signing… dgrijalva/jwt-go — jwt-go is a Go library for creating, parsing, and verifying signed JSON Web Tokens. It provides a pluggable signing… authlib/authlib — Authlib is a comprehensive Python library for building and integrating OAuth 1.0, OAuth 2.0, and OpenID Connect… golang-jwt/jwt — This project is a JSON Web Token implementation library and toolkit for encoding, signing, and validating tokens. It… auth0/node-jsonwebtoken — This project is a Node.js library for implementing and managing JSON Web Tokens. It functions as a cryptographic token… jwt/ruby-jwt — This is a Ruby implementation library for encoding, decoding, and verifying JSON Web Tokens according to the RFC 7519…

Projects sharing features with Pyjwt

These projects share indexed features with Pyjwt. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • auth0/java-jwtauth0 avatar

    auth0/java-jwt

    6,227View on GitHub↗

    This is a Java library for creating and verifying JSON Web Tokens (JWTs), supporting multiple cryptographic signing algorithms including HMAC, RSA, and ECDSA. The library provides a builder pattern for constructing tokens with custom claims and algorithm selection, and offers separate verification methods that check signatures and validate standard claims such as expiration, issuer, and audience. The library abstracts cryptographic algorithms behind a common interface, allowing pluggable signing and verification without coupling token creation to a specific algorithm. Tokens are represented a

    Javadx-sdkjavajwt
    View on GitHub↗6,227
  • dgrijalva/jwt-godgrijalva avatar

    dgrijalva/jwt-go

    10,747View on GitHub↗

    jwt-go is a Go library for creating, parsing, and verifying signed JSON Web Tokens. It provides a pluggable signing interface that supports multiple cryptographic algorithms, including HMAC, RSA, ECDSA, and RSA-PSS, allowing tokens to be signed and verified with different security properties. The library is built around a signing-method registry and a token-parsing pipeline that splits a JWT string into its header, payload, and signature segments for validation. It includes typed error classification for common failure modes such as invalid signatures, expired tokens, or malformed input, and

    Go
    View on GitHub↗10,747
  • authlib/authlibauthlib avatar

    authlib/authlib

    5,346View on GitHub↗

    Authlib is a comprehensive Python library for building and integrating OAuth 1.0, OAuth 2.0, and OpenID Connect clients and servers. It provides a unified set of tools to manage authentication and authorization flows, allowing applications to either act as a client connecting to external identity providers or as a provider issuing tokens and managing user identities. The project distinguishes itself through a full implementation of the JOSE standards, offering a suite of cryptographic tools for generating, signing, encrypting, and validating JSON Web Tokens, Signatures, Encryption, and Keys.

    Pythondjangoflaskjose
    View on GitHub↗5,346
  • golang-jwt/jwtgolang-jwt avatar

    golang-jwt/jwt

    8,908View on GitHub↗

    This project is a JSON Web Token implementation library and toolkit for encoding, signing, and validating tokens. It provides the necessary functions to manage token claims and payloads for user authentication and authorization. The library supports both symmetric and asymmetric cryptography, allowing for the use of shared secrets or public-private key pairs. It enables the creation of signed tokens and the verification of their authenticity and integrity to prevent data tampering. The toolkit covers a broad range of identity and access control capabilities, including the embedding of custom

    Goauthed25519go
    View on GitHub↗8,908
Compare all 30 related projects→