JWT, JWS, JWE, JWK, and JWA Implementations


OpenID Connect uses the JSON Web Token (JWT) and JSON Object Signing and Encryption (JOSE) specifications. Libraries implementing JWT and the JOSE specs JWS, JWE, JWK, and JWA are listed here.

C/C++

cjose

  • C JOSE library
  • License: MIT
  • Supports: JWS, JWE, and JWK
  • Target Environment: C/C++

C#

JsonWebToken DelegatingHandler for ASP.NET WebAPI

  • description:
  • License: MIT
  • Supports: JWS, JWT
  • Target Environment: ASP.NET WebAPI

JSON Web Token Handler For the Microsoft .Net Framework 4.5

  • This package provides an assembly containing classes which extend the .NET Framework 4.5 with the necessary logic to process the JSON Web Token (JWT) format.
  • License: Microsoft Software License
  • Supports: JWS, JWT
  • Target Environment: .Net Framework 4.5

JWT (JSON Web Token) implementation for .NET 3.5+

Microsoft.Owin.Security.Jwt

  • Middleware that enables an application to protect and validate JSON Web Tokens.
  • License: Microsoft Software License
  • Supports: JWS, JWT
  • Target Environment: OWIN

OWIN Authentication Middleware for Auth0 JWT Bearer Token

  • License:
  • Supports: JWS, JWT
  • Target Environment: OWIN

Haskell

Haskell jose-jwt package

Java

jose4j

  • Open source implementation of JWT and the full JOSE suite. Developed by Brian Campbell.
  • License: Apache 2.0
  • Supports: JWT, JWS, JWE and JWK.
  • Target Environment: Java 7 or 8

Nimbus JOSE+JWT

  • Nimbus JOSE+JWT is an open source (Apache 2.0) Java library that implements the Javascript Object Signing and Encryption (JOSE) spec suite and the closely related JSON Web Token (JWT) spec. Developed by Connect2id.
  • License: Apache 2.0
    Supports: JWS, JWE, JWT
    Target Environment: Java 6, 7 or 8

Java JWT

  • a simple project to decode JSON Web Tokens in Java
  • License:
  • Supports: JWS, JWT
  • Target Environment:

Resteasy

  • description:
  • License:
  • Supports:
  • Target Environment: JBOSS

Apache Oltu – JOSE

  • Apache Oltu is an OAuth protocol implementation in Java. It also covers others “OAuth family” related implementations such as JWT, JWS and OpenID Connect.
  • License: Apache 2.0
  • Supports: JWS, JWT
  • Target Environment: Apache

Apache CXF

  • Apache CXF is a Java JAX-WS and JAX-RS 2.0 services framework. It also provides a complete JOSE implementation.
  • License: Apache 2.0
  • Supports: JWA, JWK, JWS, JWE, JWT
  • Target Environment: Apache

Javascript

jose

  • jose is an implementation of the JOSE standard for Node.js with minimal dependencies and broad algorithm and feature support.
  • License: MIT
  • Supports: JWT, JWS, JWE, JWA, JWK, JWKS
  • Target Environment: Node.js

jsjws

  • The ‘jsjws'(JSON Web Signature JavaScript Library) is a pure open source free JavaScript implementation of JWS. Furthermore, ‘jsjws’ provides JSON Web Signature JSON Serialization (JWS-JS) which is a kind of parallel or independent signature format by multiple signers. Created by Kenji Urushima (@kjur)
  • License: MIT
  • Supports: JWS, JWS-JS
  • Target Environment: generic

node-jsonwebtoken

  • node-jsonwebtoken is a JWS library for node.js.
  • License: MIT
  • Supports: JWS, JWT
  • Target Environment: node.js

Ruby

PHP

phpOIDC

  • phpOIDC is a PHP implementation of OpenID Connect, developed by Nomura Research Institute. It also includes the JWT, JWS, and JWE support.
  • License: Apache 2.0
  • Relying Party: Yes
  • Identity Provider: Yes
  • Target Environment: Apache, nginx

Python

Tools

http://jwt.io/ JWT debugger

  • Description: Interactive JWT debugger

json-web-key-generator

  • Description: a command-line Java app to generate JWKs and JWK sets