User Guide Cancel

CreateSignedJWT

 

Description

Create a signed JWT.

Syntax

CreateSignedJWT(payload, signOptions, config)

History

  • New in ColdFusion (2023 release).

Parameters

Parameters Description Required
payload

If the payload is a string, the method accepts it as it is. If not, the following fields can be passed as a struct:

  • iss - The authority issuing the token
  • sub - The user/client for whom this token is established
  • aud - Who is allowed to view this token
  • exp - The time after which the token is not valid anymore
  • nbf - The time before which the token should not be processed
  • iat - If not set, defaults to current timestamp
  • jti - Corresponds to jti field to prevent replay attacks. Will be generated automatically if not already displayed.
Yes
signOptions

Create the signature using the struct below:

  • Key
  • KeyPair - private Key will be used
  • Keystore file, keystore password, keystore alias
Yes
config

A struct with the following values:

  • algorithm - algorithm used for signing.
  • generateIssuedAt - boolean to know whether to generate "iat" field
  • generateJti - boolean to know whether to generate "jti" field
Yes

Returns

A JWT string.

Example

<cfset text = {
"iss" = "a",
"sub" = "b",
"abcd" = "efgh",
"aud" = "adobe",
"exp" = "#DateAdd("n", 30, now())#",
"id"="cc",
"iat"="#DateAdd("n", -30, now())#"
}>
<cfset k=getKeyPairfromkeystore({
"keystore" : "test_jws1.keystore",
"keystorePassword": "****",
"keypairPassword": "****",
"keystoreAlias": "contentKey"
}) >
<cfset c = {
"algorithm" = "RS256",
"generateIssuedAt"= true,
"generateJti"=true
}>
<cfset createjws = CreateSignedJWT(text,k.getPrivate(),c)>
<cfdump var = "#createjws#">
<cfset text = { "iss" = "a", "sub" = "b", "abcd" = "efgh", "aud" = "adobe", "exp" = "#DateAdd("n", 30, now())#", "id"="cc", "iat"="#DateAdd("n", -30, now())#" }> <cfset k=getKeyPairfromkeystore({ "keystore" : "test_jws1.keystore", "keystorePassword": "****", "keypairPassword": "****", "keystoreAlias": "contentKey" }) > <cfset c = { "algorithm" = "RS256", "generateIssuedAt"= true, "generateJti"=true }> <cfset createjws = CreateSignedJWT(text,k.getPrivate(),c)> <cfdump var = "#createjws#">
<cfset text = {
    "iss" = "a",
    "sub" = "b",
    "abcd" = "efgh",
    "aud" = "adobe",
    "exp" = "#DateAdd("n", 30, now())#",
    "id"="cc",
    "iat"="#DateAdd("n", -30, now())#"
}>
 
<cfset k=getKeyPairfromkeystore({  
        "keystore" : "test_jws1.keystore",
        "keystorePassword": "****",  
        "keypairPassword": "****",  
        "keystoreAlias": "contentKey"
    }) >
 
<cfset c = {
    "algorithm" = "RS256",
    "generateIssuedAt"= true,
"generateJti"=true
}>
<cfset createjws = CreateSignedJWT(text,k.getPrivate(),c)>
<cfdump var = "#createjws#">

Get help faster and easier

New user?