DataWeave JWT Library
home
DataWeave JWT Library
This library provides functionality to create signed JSON Web Tokens directly on DataWeave with RSA and HMAC signatures.
Overview
This is a simple example using an HMAC signature:
%dw 2.0
import jwt::HMAC
output application/json
---
HMAC::JWT({
"firstName": "Michael",
"lastName": "Jones"
}, "d4t4w34v3!")
And this is a more complex example, where the key is an input to the transformation:
%dw 2.0
import * from jwt::RSA
output application/json
input key application/json
---
{
token: JWT(
{
iss: "some@email.com",
aud: 'https://oauth2.googleapis.com/token',
scope: 'https://www.googleapis.com/auth/drive.readonly',
iat: now() as Number { unit: 'seconds' },
exp: (now() + |PT3600S|) as Number { unit: 'seconds' }
},
key
),
expiration: now() + |PT3550S|
}
NOTE: The
input
directive does not work within Mule because inputs there are managed by Mule itself. In that case, you would be able to reference thepayload
orvars
directly.
Contributions Welcome
Contributions to this project can be made through Pull Requests and Issues on the
GitHub Repository.
Before creating a pull request review the following:
When you submit your pull request, you are asked to sign a contributor license agreement (CLA) if we don't have one on file for you.
DataWeave Version
This library requires DataWeave version 2.5 or higher.
Modules
Name | Description |
---|---|
Common | This module provides helper functions to create signed JSON Web Tokens. |
HMAC | This module provides functionality to create signed JSON Web Tokens using HMAC. |
RSA | This module provides functionality to create signed JSON Web Tokens using RSA signatures. |