From fa9635eb9361d4d2e1eded335657c53f20c2078a Mon Sep 17 00:00:00 2001 From: Alex Rimlin Date: Wed, 3 Apr 2024 18:51:13 +0300 Subject: [PATCH] docs(guides/integrate/service-users/private-key-jwt): (#7677) * docs(guides/integrate/service-users/private-key-jwt): adjust incomplete, outdated and incorrect parts of the python example. * wrong variable name for kid in the header --------- Co-authored-by: Stefan Benz <46600784+stebenz@users.noreply.github.com> --- .../integrate/service-users/private-key-jwt.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/docs/guides/integrate/service-users/private-key-jwt.md b/docs/docs/guides/integrate/service-users/private-key-jwt.md index 65bd3d0f1..da1c6de43 100644 --- a/docs/docs/guides/integrate/service-users/private-key-jwt.md +++ b/docs/docs/guides/integrate/service-users/private-key-jwt.md @@ -118,21 +118,27 @@ import datetime # Replace with your service user ID and private key service_user_id = "your_service_user_id" private_key = "-----BEGIN PRIVATE KEY-----\nYOUR_PRIVATE_KEY\n-----END PRIVATE KEY-----" +key_id = "your_key_id" # ZITADEL API URL (replace if needed) api_url = "your_custom_domain" # Generate JWT claims payload = { - "iss": "your_zitadel_instance_id", + "iss": service_user_id, "sub": service_user_id, "aud": api_url, - "exp": datetime.utcnow() + datetime.timedelta(minutes=5), - "iat": datetime.utcnow() + "exp": datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(minutes=5), + "iat": datetime.datetime.now(datetime.timezone.utc) +} + +header = { + "alg": "RS256", + "kid": key_id } # Sign the JWT using RS256 algorithm -encoded_jwt = jwt.encode(payload, private_key, algorithm="RS256") +encoded_jwt = jwt.encode(payload, private_key, algorithm="RS256", headers=header) print(f"Generated JWT: {encoded_jwt}") ```