Generating JWT for Target API | Community
Skip to main content
Level 3
July 26, 2019
Solved

Generating JWT for Target API

  • July 26, 2019
  • 4 replies
  • 7797 views

Hi,

I've followed the steps to generate JWT token from Adobe I/O and then exchange it with Access Token.

It's working as expected but the expiration of the token is set for 24 hours.

After 24 hours I need to generate a new JWT token and Access token.

Since I need to generate it every day is there a way to do it programmatically or ser a process to refresh it?

Thanks,

Sagi

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Rajneesh_Gautam_

Hi Sagil - here is Python code to generate JWT token:

# expiry time as 24 hours

expiry_time = int(time.time()) + 60*60*24

ims_host = 'ims-na1.adobelogin.com'

ims_endpoint_jwt = '/ims/exchange/jwt/'

# create payload

payload = {

    'exp' : expiry_time,

    'iss' : <YOUR-ADOBE-ORG-ID>,

    'sub' : <YOUR-TEST-ACCOUNT-ID>,

    'https://ims-na1.adobelogin.com/s/ent_marketing_sdk': True,   

    'aud' : "https://" + ims_host + "/c/" + <API-KEY-OF-ADOBE-IO-INTEGRATION>

}

# Read the private key we will use to sign the JWT.

priv_key_file = open(<PRIVATE-KEY-PATH>)

priv_key = priv_key_file.read()

priv_key_file.close()

# create JSON Web Token, signing it with the private key.

jwt_token = jwt.encode(payload, priv_key, algorithm='RS256')

# decode bytes into string

jwt_token = jwt_token.decode("utf-8")

Hope this helps,

Rajneesh

4 replies

MihneaD
Adobe Employee
Adobe Employee
August 5, 2019

sagil23995776​,

Unfortunately for security purposes it needs to be re-generated every 24hrs.

Mihnea Docea | Technical Support Consultant | Customer Experience | Adobe | (:: 1 (800) 497-0335

Rajneesh_Gautam_
Community Advisor
Rajneesh_Gautam_Community AdvisorAccepted solution
Community Advisor
August 7, 2019

Hi Sagil - here is Python code to generate JWT token:

# expiry time as 24 hours

expiry_time = int(time.time()) + 60*60*24

ims_host = 'ims-na1.adobelogin.com'

ims_endpoint_jwt = '/ims/exchange/jwt/'

# create payload

payload = {

    'exp' : expiry_time,

    'iss' : <YOUR-ADOBE-ORG-ID>,

    'sub' : <YOUR-TEST-ACCOUNT-ID>,

    'https://ims-na1.adobelogin.com/s/ent_marketing_sdk': True,   

    'aud' : "https://" + ims_host + "/c/" + <API-KEY-OF-ADOBE-IO-INTEGRATION>

}

# Read the private key we will use to sign the JWT.

priv_key_file = open(<PRIVATE-KEY-PATH>)

priv_key = priv_key_file.read()

priv_key_file.close()

# create JSON Web Token, signing it with the private key.

jwt_token = jwt.encode(payload, priv_key, algorithm='RS256')

# decode bytes into string

jwt_token = jwt_token.decode("utf-8")

Hope this helps,

Rajneesh

Level 9
October 6, 2020
@1559532, can you please help. The above code will generate a access token?
September 4, 2019

I'm trying to do this exact same thing but in C# .NET. You wouldn't happen to have an example for that as well?

Level 2
February 4, 2023

Hi All,

I'm facing the same issue currently, I'm trying to generate token programmatically and followed the steps per the doc here: https://experienceleague.adobe.com/docs/experience-platform/tags/api/getting-started.html?lang=en#:~:text=Generate%20access%20tokens%20programmatically
but I'm getting a 503: Service Unavailable response!
Is it not available anymore or what?