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

Generating JWT for Target API

  • July 26, 2019
  • 4 replies
  • 7783 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

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?

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?