<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282388#M3695</link>
    <description>&lt;P&gt;5ba8c7208393835e1cf329cab9893f70a4603c1381c70090c70ccbeff046f666&lt;/P&gt;</description>
    <pubDate>Mon, 28 Aug 2023 06:56:38 GMT</pubDate>
    <dc:creator>ajmaradiaga</dc:creator>
    <dc:date>2023-08-28T06:56:38Z</dc:date>
    <item>
      <title>SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282366#M3688</link>
      <description>&lt;P&gt;(Check out the &lt;A href="https://blogs.sap.com/2023/08/01/sap-developer-challenge-apis/" target="_blank" rel="noopener"&gt;SAP Developer Challenge - APIs&lt;/A&gt; blog post for everything you need to know about the challenge to which this task relates!)&lt;/P&gt;&lt;P&gt;You're almost ready to call the API endpoint to examine the details of the directory you created back in &lt;A href="https://groups.community.sap.com/t5/application-development/sap-developer-challenge-apis-task-7-create-a-new-directory-in-an/td-p/280341" target="_blank" rel="noopener"&gt;Task 7&lt;/A&gt;. But as we're going deliberately slowly and surely, let's take some time in this task to &lt;A href="https://qmacro.org/blog/posts/2017/02/19/the-beauty-of-recursion-and-list-machinery/#initialrecognition" target="_blank" rel="noopener"&gt;stare at&lt;/A&gt; the access token itself for a few minutes, to see what we can discover.&lt;/P&gt;&lt;H2&gt;Background&lt;/H2&gt;&lt;P&gt;In &lt;A href="https://groups.community.sap.com/t5/application-development/sap-developer-challenge-apis-task-10-request-an-oauth-access/m-p/281933" target="_blank" rel="noopener"&gt;the previous task&lt;/A&gt; you obtained an access token, by completing the flow described by the OAuth Resource Owner Password Credentials grant type. The access token was made available to you in a JSON object which contained not only the access token itself, but other values. Here's that example from the previous task, with the expires_in property added back in:&lt;/P&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"access_token"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"eyJhbGciOiJSUzI1NiIs..."&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"token_type"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"bearer..."&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"id_token"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"eyJhbGciOiJSUzI1NiIs..."&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"refresh_token"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"e72b61a9a9304dde963e..."&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"expires_in"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;43199&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"scope"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"cis-central!b14.glob..."&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"jti"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"579fea14a1cf47d7ab9e..."&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;&lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;P&gt;One of the values also provided is scope, which contains a whitespace separated list of scopes. If you were to parse the value, you'd see the list. Here's one way to do that (truncating the list to the first 10 scope items), assuming the JSON object representing the token data is in a file called tokendata.json:&lt;/P&gt;&lt;PRE&gt;jq '.scope|split(" ")[:10]' tokendata.json&lt;/PRE&gt;&lt;P&gt;This would produce:&lt;/P&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;[&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"cis-central!b14.global-account.subaccount.update"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"cis-central!b14.global-account.update"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"user_attributes"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"cis-central!b14.global-account.subaccount.delete"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"cis-central!b14.global-account.subaccount.read"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"cis-central!b14.job.read"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"cis-central!b14.catalog.product.update"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"cis-central!b14.catalog.product.delete"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"cis-central!b14.global-account.account-directory.create"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"cis-central!b14.directory.entitlement.update"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;&lt;SPAN class=""&gt;]&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;P&gt;This metadata, data about the access token, essentially, is useful to us to have. But what's more interesting is how this scope information is conveyed in the actual call to the API endpoint.&lt;/P&gt;&lt;P&gt;It's specifically the value of the access_token property from the JSON object that is sent in the Authorization header of the HTTP request made, as you learned about in &lt;A href="https://groups.community.sap.com/t5/application-development/sap-developer-challenge-apis-task-9-create-a-service-key-for-api/td-p/281337" target="_blank" rel="noopener"&gt;Task 9&lt;/A&gt;. The other values in the JSON object (the id_token, refresh_token, expires_in values, and so on) don't go anywhere, they're just for us, the consumer, to use in managing our use of that access token (including knowing when it will expire and requesting a refresh).&lt;/P&gt;&lt;P&gt;So the scope information for this access token appears to be conveyed in a property (scope) that doesn't get sent to the resource server. How does the server then know whether to respond with the requested information or not?&lt;/P&gt;&lt;P&gt;To answer this question, we're going to go on a bit of a digression in this task.&lt;/P&gt;&lt;P&gt;So.&lt;/P&gt;&lt;P&gt;Have you ever wondered about the value of the access token itself? It's a very large, opaque string. In fact, how long is it?&lt;/P&gt;&lt;PRE&gt;jq -r '"\(.access_token|length) bytes"' tokendata.json&lt;/PRE&gt;&lt;P&gt;Pretty long!&lt;/P&gt;&lt;PRE&gt;3912 bytes&lt;/PRE&gt;&lt;P&gt;Surely there must be a reason for something so large?&lt;/P&gt;&lt;H3&gt;The anatomy of the access token&lt;/H3&gt;&lt;P&gt;Yes. It's actually a &lt;A href="https://en.wikipedia.org/wiki/JSON_Web_Token" target="_blank" rel="noopener"&gt;JSON Web Token&lt;/A&gt;, or JWT (often pronounced "jot"). A JWT contains structured data, which is fascinating to peek at. And that's what you're going to do in this task.&lt;/P&gt;&lt;P&gt;First of all, it's worth knowing that the content of a JWT is organized into different sections, including:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Header&lt;/LI&gt;&lt;LI&gt;Payload&lt;/LI&gt;&lt;LI&gt;Signature&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;The Header contains a small amount of data about the JWT itself, and consists of values for a series of &lt;A href="https://datatracker.ietf.org/doc/html/rfc7515#section-4.1" target="_blank" rel="noopener"&gt;well-defined (in RFC7515) parameters&lt;/A&gt;, the names of which are all three characters in length (to keep things short). Examples are "alg" which identifies the algorithm used to secure the data, "jku", the value of which is a URL that points to a JSON Web Key Set used in the digital signature, and "typ" which conveys the type of content it is.&lt;/P&gt;&lt;P&gt;The Payload section of the JWT is where the data that's most interesting to us lives, or rather most interesting to the server that will handle our requests. It's where the scopes (that we saw earlier) are stored, amongst many other details.&lt;/P&gt;&lt;P&gt;The Signature is essentially a signed checksum of the entire contents.&lt;/P&gt;&lt;P&gt;So the answer to the question above is that the server knows how to respond to requests because there's enough information passed inside the access token (being in the form of a JWT), including a list of scopes that the token conveys for the consumer, for it to decide.&lt;/P&gt;&lt;H2&gt;Your task&lt;/H2&gt;&lt;P&gt;Your task is to examine the contents of the access token, by treating it for what it is, i.e. a JWT. You should take information from the Header, and information from the Payload, and combine it into a value that you should send to the hash service, and then put the resulting hash into a reply to this thread, as always, and as described in &lt;A href="https://groups.community.sap.com/t5/application-development/sap-developer-challenge-apis-task-0-learn-to-share-your-task/m-p/276058" target="_blank" rel="noopener"&gt;Task 0&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;What specifically is that information?&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;from the Header, you should take the value of the "alg" and "typ" parameters&lt;/LI&gt;&lt;LI&gt;from the Payload, you should count the number of scopes conveyed&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;You should then combine those three pieces of information like this, using colons as separators:&lt;/P&gt;&lt;PRE&gt;&amp;lt;value-of-alg&amp;gt;:&amp;lt;value-of-typ&amp;gt;:&amp;lt;number-of-scopes&amp;gt;&lt;/PRE&gt;&lt;P&gt;Let's look at the partial contents of an imaginary (but typical) JWT in this context, to illustrate. This illustration assumes that the access token JSON data (such as you retrieved in the previous task, &lt;A href="https://groups.community.sap.com/t5/application-development/sap-developer-challenge-apis-task-10-request-an-oauth-access/m-p/281933" target="_blank" rel="noopener"&gt;Task 10&lt;/A&gt;) is in a file called tokendata.json. This illustration is also based on using the jwt-cli package, and the command line tool it provides, as described in the "Hints and tips" section below.&lt;/P&gt;&lt;P&gt;So, to pick out the value of the access token (from the access_token property in the JSON object in tokendata.json), and then to treat that access token value for what it is, i.e. a JWT, and ask for the JWT to be expanded into its component parts, you'd do something like this (note the --output=json option to produce nicely machine-parseable output!):&lt;/P&gt;&lt;PRE&gt;jq -r .access_token tokendata.json | jwt --output=json&lt;/PRE&gt;&lt;P&gt;What is emitted is something like this (heavily redacted, for brevity, and with some values elided while others are replaced, for the illustration):&lt;/P&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"header"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"alg"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"ABCDE"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"jku"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"https://c2d7b642trial-ga.authentication.eu10.hana.ondemand.com/token_keys"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"kid"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"default-jwt-key-1281344942"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"typ"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"XYZ"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"jid"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"iaVmTleRBCIVnVE7veQ9opMtlHnk+3DvKWWsjpsm542="&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;},&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"payload"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"jti"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"579fea14a1cf47d7ab9e5bf4c9d15d42"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"ext_attr"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"enhancer"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"XSUAA"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"globalaccountid"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"7da58aab-6c60-4492-a95b-b1ed3139e242"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"zdn"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"c2d7b642-ga"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"serviceinstanceid"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"f118abbb-b387-41b1-970f-bf4f0309c142"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;},&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"xs.system.attributes"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;{&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"xs.rolecollections"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;[&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;        &lt;SPAN class=""&gt;"Global Account Administrator"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;]&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;},&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"given_name"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"DJ"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"xs.user.attributes"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;{},&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"family_name"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"Adams"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"sub"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"965a393a-dc96-422f-87ac-9f3d8bb25142"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"scope"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;[&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"cis-central!b14.global-account.subaccount.update"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"cis-central!b14.global-account.update"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"...another 39 scopes..."&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;      &lt;SPAN class=""&gt;"cis-central!b14.global-account.subaccount.create"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;]&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"client_id"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"sb-ut-f86082c9-7fbf-4e1e-8310-f5d018dab542-clone!b254742|cis-central!b14"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"cid"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"sb-ut-f86082c9-7fbf-4e1e-8310-f5d018dab542-clone!b254742|cis-central!b14"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"azp"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"sb-ut-f86082c9-7fbf-4e1e-8310-f5d018dab542-clone!b254742|cis-central!b14"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"grant_type"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"password"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"user_id"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"965a393a-dc96-422f-87ac-9f3d8bb25142"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"origin"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"sap.default"&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"iat"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;1692693022&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"exp"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;1692736222&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;    &lt;SPAN class=""&gt;"..."&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"..."&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;},&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"signature"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"ZVe_aqyLAyXwToCvG..."&lt;/SPAN&gt;&lt;SPAN class=""&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;  &lt;SPAN class=""&gt;"input"&lt;/SPAN&gt;&lt;SPAN class=""&gt;:&lt;/SPAN&gt; &lt;SPAN class=""&gt;"eyJhbGciOiJSUzI1NiIsI..."&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN&gt;&lt;SPAN class=""&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;P&gt;So the three values in the result you should construct, thus:&lt;/P&gt;&lt;PRE&gt;&amp;lt;value-of-alg&amp;gt;:&amp;lt;value-of-typ&amp;gt;:&amp;lt;number-of-scopes&amp;gt;&lt;/PRE&gt;&lt;P&gt;should be, in order:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&amp;lt;value-of-alg&amp;gt;: the value of the .header.alg property&lt;/LI&gt;&lt;LI&gt;&amp;lt;value-of-typ&amp;gt;: the value of the .header.typ property&lt;/LI&gt;&lt;LI&gt;&amp;lt;number-of-scopes&amp;gt;: the length of the array that is the value of the .payload.scope property&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;For example:&lt;/P&gt;&lt;PRE&gt;ABCDE:XYZ:42&lt;/PRE&gt;&lt;H2&gt;Hints and tips&lt;/H2&gt;&lt;P&gt;There are many tools and libraries with which JWT tokens can be parsed, even &lt;A href="https://jwt.io/" target="_blank" rel="noopener"&gt;online facilities&lt;/A&gt; ... though you should think twice before sending authorization data to third party websites - it's better to use a tool that you have locally.&lt;/P&gt;&lt;P&gt;For tools to use locally, you might wish to check out the NPM package &lt;A href="https://www.npmjs.com/package/jwt-cli" target="_blank" rel="noopener"&gt;jwt-cli&lt;/A&gt; which, if you install it globally, will give you a command line tool called jwt.&lt;/P&gt;&lt;P&gt;It's one of my standard globally-installed NPM-based tools, which you can see here, via:&lt;/P&gt;&lt;PRE&gt;npm list --global&lt;/PRE&gt;&lt;P&gt;This emits:&lt;/P&gt;&lt;PRE&gt;/home/user/.npm-global/lib
+-- @sap/cds-dk@7.0.2
+-- @sap/generator-fiori@1.9.4
+-- @sapui5/generator-sapui5-templates@1.71.6
+-- @ui5/cli@3.1.1
+-- bash-language-server@4.9.1
+-- docsify-cli@4.4.4
+-- eslint@8.39.0
+-- fx@28.0.0
+-- http-server@14.1.1
+-- httpie@1.1.2
+-- jwt-cli@2.0.0
+-- lodash@4.17.21
+-- lorem-ipsum@2.0.8
+-- markdownlint-cli@0.34.0
+-- prettier@2.8.8
+-- ramda@0.29.0
+-- url-decode-encode-cli@2.1.0
+-- yarn@1.22.19
`-- yo@4.3.1&lt;/PRE&gt;&lt;P&gt;With the jwt tool, you can decode such JWT access tokens. And with jwt's --output=json option, it's even better!&lt;/P&gt;&lt;H2&gt;For discussion&lt;/H2&gt;&lt;P&gt;The expires_in property, that accompanies the access token returned, has an interesting value. It's 1 second less than 12 hours. Do you think that's deliberate? Calculated?&lt;/P&gt;</description>
      <pubDate>Mon, 28 Aug 2023 06:43:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282366#M3688</guid>
      <dc:creator>qmacro</dc:creator>
      <dc:date>2023-08-28T06:43:04Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282372#M3689</link>
      <description>&lt;P&gt;16f0aec1122dac8b7da8564df068bc8c4e26f56c949f944d264ef23cc31c3b26&lt;/P&gt;</description>
      <pubDate>Mon, 28 Aug 2023 06:35:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282372#M3689</guid>
      <dc:creator>vladimirs_semikins</dc:creator>
      <dc:date>2023-08-28T06:35:39Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282374#M3690</link>
      <description>&lt;P&gt;I've used raycat plugin&amp;nbsp;&lt;A href="https://www.raycast.com/gdsmith/jwt-decoder" target="_blank" rel="noopener"&gt;https://www.raycast.com/gdsmith/jwt-decoder&lt;/A&gt;&amp;nbsp;to decode JWT token&lt;/P&gt;&lt;P&gt;Also, I never say "jot," but instead spell it as J-W-T. Thankfully, I'm not the only one who does this -&amp;nbsp;&lt;A href="https://www.youtube.com/watch?v=D2D9umQMKhA" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=D2D9umQMKhA&lt;/A&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 28 Aug 2023 06:38:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282374#M3690</guid>
      <dc:creator>vladimirs_semikins</dc:creator>
      <dc:date>2023-08-28T06:38:45Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282380#M3692</link>
      <description>&lt;P&gt;Haha, you're right. I've added the word "often" to the text, to suggest that not everyone does &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 28 Aug 2023 06:43:44 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282380#M3692</guid>
      <dc:creator>qmacro</dc:creator>
      <dc:date>2023-08-28T06:43:44Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282382#M3694</link>
      <description>&lt;P&gt;&lt;SPAN&gt;ec&lt;/SPAN&gt;&lt;SPAN class=""&gt;09383&lt;/SPAN&gt;&lt;SPAN&gt;eb&lt;/SPAN&gt;&lt;SPAN class=""&gt;0242&lt;/SPAN&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;SPAN class=""&gt;8&lt;/SPAN&gt;&lt;SPAN class=""&gt;c&lt;/SPAN&gt;&lt;SPAN class=""&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;cff&lt;/SPAN&gt;&lt;SPAN class=""&gt;9&lt;/SPAN&gt;&lt;SPAN&gt;ce&lt;/SPAN&gt;&lt;SPAN class=""&gt;4&lt;/SPAN&gt;&lt;SPAN&gt;aef&lt;/SPAN&gt;&lt;SPAN class=""&gt;8&lt;/SPAN&gt;&lt;SPAN&gt;a&lt;/SPAN&gt;&lt;SPAN class=""&gt;219&lt;/SPAN&gt;&lt;SPAN&gt;dd&lt;/SPAN&gt;&lt;SPAN class=""&gt;6&lt;/SPAN&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;SPAN class=""&gt;2941314&lt;/SPAN&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;SPAN class=""&gt;44e1&lt;/SPAN&gt;&lt;SPAN&gt;ba&lt;/SPAN&gt;&lt;SPAN class=""&gt;64&lt;/SPAN&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;db&lt;/SPAN&gt;&lt;SPAN class=""&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;SPAN class=""&gt;72e9&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 28 Aug 2023 06:45:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282382#M3694</guid>
      <dc:creator>harsh_itaverma</dc:creator>
      <dc:date>2023-08-28T06:45:03Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282388#M3695</link>
      <description>&lt;P&gt;5ba8c7208393835e1cf329cab9893f70a4603c1381c70090c70ccbeff046f666&lt;/P&gt;</description>
      <pubDate>Mon, 28 Aug 2023 06:56:38 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282388#M3695</guid>
      <dc:creator>ajmaradiaga</dc:creator>
      <dc:date>2023-08-28T06:56:38Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282391#M3696</link>
      <description>&lt;P&gt;I used this to decode the JWT - &lt;A href="https://github.com/mike-engel/jwt-cli" target="_blank"&gt;https://github.com/mike-engel/jwt-cli&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="bash"&gt;brew install mike-engel/jwt-cli/jwt-cli

# Note that the command line for JWT will be a bit different than when using the npm package
jq -r .access_token cis_access_token.json | jwt decode -j -&lt;/LI-CODE&gt;</description>
      <pubDate>Mon, 28 Aug 2023 07:02:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282391#M3696</guid>
      <dc:creator>ajmaradiaga</dc:creator>
      <dc:date>2023-08-28T07:02:42Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282409#M3698</link>
      <description>&lt;P&gt;c219a98398a34ee23da4a4f41e2596d9f802b9d07d73048b85a45ad33f16c19b&lt;/P&gt;</description>
      <pubDate>Mon, 28 Aug 2023 07:43:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282409#M3698</guid>
      <dc:creator>prachetas</dc:creator>
      <dc:date>2023-08-28T07:43:06Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282426#M3699</link>
      <description>&lt;P&gt;2aad754ea377922f55c2a729eef24c0796cda2115d35c75187f0dff537e73d8d&lt;/P&gt;</description>
      <pubDate>Mon, 28 Aug 2023 08:12:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282426#M3699</guid>
      <dc:creator>SandipAgarwalla</dc:creator>
      <dc:date>2023-08-28T08:12:32Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282430#M3700</link>
      <description>&lt;P&gt;d6b9a707cd27046564812042900385b19ce0afe50c47efb5a559349b5bfde8e8&lt;/P&gt;</description>
      <pubDate>Mon, 28 Aug 2023 08:20:38 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282430#M3700</guid>
      <dc:creator>emiliocampo</dc:creator>
      <dc:date>2023-08-28T08:20:38Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282454#M3705</link>
      <description>&lt;P&gt;c6c915af93f2cb45053bf7d7b7723e336fef38d76d87ecb37b2bb8f02c2ec210&lt;/P&gt;</description>
      <pubDate>Mon, 28 Aug 2023 08:57:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282454#M3705</guid>
      <dc:creator>tobiasz_h</dc:creator>
      <dc:date>2023-08-28T08:57:47Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282457#M3707</link>
      <description>&lt;P&gt;&lt;SPAN class=""&gt;2&lt;/SPAN&gt;&lt;SPAN class=""&gt;c&lt;/SPAN&gt;&lt;SPAN class=""&gt;5617&lt;/SPAN&gt;&lt;SPAN&gt;d&lt;/SPAN&gt;&lt;SPAN class=""&gt;44946820&lt;/SPAN&gt;&lt;SPAN&gt;f&lt;/SPAN&gt;&lt;SPAN class=""&gt;48299176762&lt;/SPAN&gt;&lt;SPAN&gt;a&lt;/SPAN&gt;&lt;SPAN class=""&gt;43&lt;/SPAN&gt;&lt;SPAN&gt;cf&lt;/SPAN&gt;&lt;SPAN class=""&gt;3e2&lt;/SPAN&gt;&lt;SPAN class=""&gt;c&lt;/SPAN&gt;&lt;SPAN class=""&gt;5289552&lt;/SPAN&gt;&lt;SPAN&gt;d&lt;/SPAN&gt;&lt;SPAN class=""&gt;702295&lt;/SPAN&gt;&lt;SPAN&gt;afccdd&lt;/SPAN&gt;&lt;SPAN class=""&gt;89&lt;/SPAN&gt;&lt;SPAN&gt;f&lt;/SPAN&gt;&lt;SPAN class=""&gt;3&lt;/SPAN&gt;&lt;SPAN&gt;f&lt;/SPAN&gt;&lt;SPAN class=""&gt;6&lt;/SPAN&gt;&lt;SPAN&gt;b&lt;/SPAN&gt;&lt;SPAN class=""&gt;9&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 28 Aug 2023 09:03:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282457#M3707</guid>
      <dc:creator>kasch-code</dc:creator>
      <dc:date>2023-08-28T09:03:26Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282466#M3710</link>
      <description>&lt;P&gt;5fc1973f8d4cc3e2e39a3755df52a2d93d83c7047d24f459288cf5958fb77511&lt;/P&gt;</description>
      <pubDate>Mon, 28 Aug 2023 09:18:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282466#M3710</guid>
      <dc:creator>szeteng00</dc:creator>
      <dc:date>2023-08-28T09:18:25Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282472#M3711</link>
      <description>&lt;P&gt;f0b52968defdd5dcbef3d6a77f530cfefa3d03a846afad6c451e5419f419b9c1&lt;/P&gt;</description>
      <pubDate>Mon, 28 Aug 2023 09:32:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282472#M3711</guid>
      <dc:creator>choujiacheng</dc:creator>
      <dc:date>2023-08-28T09:32:07Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282475#M3712</link>
      <description>&lt;P&gt;It might be deliberate since the counter might start before the access token is sent to the user, of which the countdown has already begun, but this is speculation as I do not know the process of access tokens well.&lt;/P&gt;</description>
      <pubDate>Mon, 28 Aug 2023 09:36:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282475#M3712</guid>
      <dc:creator>choujiacheng</dc:creator>
      <dc:date>2023-08-28T09:36:02Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282485#M3713</link>
      <description>&lt;P&gt;This is a good guess! On the one hand, it seems odd to me that this is a deliberate move (to subtract 1 second before sending the value in the response), but on the other hand, it makes sense.&lt;/P&gt;</description>
      <pubDate>Mon, 28 Aug 2023 09:56:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282485#M3713</guid>
      <dc:creator>qmacro</dc:creator>
      <dc:date>2023-08-28T09:56:01Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282503#M3716</link>
      <description>&lt;P&gt;9047ad05fec9cc9f019fe6a2d6d42a830ceeed41655012c7fac880effefe3781&lt;/P&gt;</description>
      <pubDate>Mon, 28 Aug 2023 10:50:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282503#M3716</guid>
      <dc:creator>Dan_Wroblewski</dc:creator>
      <dc:date>2023-08-28T10:50:45Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282510#M3717</link>
      <description>&lt;P&gt;e1c6cd6372b2f1c60672eba17388cdbc975a546c8a556b91ed00e7ba17dbc10c&lt;/P&gt;</description>
      <pubDate>Mon, 28 Aug 2023 11:03:37 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282510#M3717</guid>
      <dc:creator>Tomas_Buryanek</dc:creator>
      <dc:date>2023-08-28T11:03:37Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282521#M3719</link>
      <description>&lt;PRE&gt;c5e4df13ad9dfc27d086bd00ab175e2741833e9f16148df21325d64224785b64&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 28 Aug 2023 14:51:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282521#M3719</guid>
      <dc:creator>ceedee666</dc:creator>
      <dc:date>2023-08-28T14:51:10Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Developer Challenge - APIs - Task 11 - Examine the access token for scopes contained</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282522#M3720</link>
      <description>&lt;P&gt;I struggled a lot today. Wasn't able to decode the token in Python. Still unclear way... &lt;span class="lia-unicode-emoji" title=":pensive_face:"&gt;😔&lt;/span&gt;.&lt;/P&gt;&lt;P&gt;Furthermore I think something is wrong with my token as it only contains one scope.&lt;/P&gt;</description>
      <pubDate>Mon, 28 Aug 2023 11:43:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-developer-challenge-apis-task-11-examine-the-access-token-for-scopes/m-p/282522#M3720</guid>
      <dc:creator>ceedee666</dc:creator>
      <dc:date>2023-08-28T11:43:05Z</dc:date>
    </item>
  </channel>
</rss>

