Check ID Endpoint
The Check ID Endpoint exists to validate the id_token returned along with the OAuth 2.0
access_token by ensuring that it was
intended for the correct client and is used by the client to begin an
authenticated session. As described above, this check is required for the
implicit flow for client-side applications (described in Chapter 3). If this check isn’t done correctly, the client
becomes vulnerable to replay attacks.
Here’s an example Check ID endpoint request:
https://accounts.example.com/oauth2/tokeninfo? id_token=eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiY...
And the response:
{
"iss" : "https://accounts.example.com",
"user_id" : "113487456102835830811",
"aud" : "753560681145-2ik2j3snsvbs80ijdi8.apps.googleusercontent.com",
"exp" : 1311281970
"nonce" : 53f2495d7b435ac571
}If the response is returned without a standard OAuth 2.0 error, the following checks need to be performed:
Verify the
audvalue in the response is identical to theclient_idused in the Authorization request.Verify that the
noncevalue in the response matches the value used in the Authorization request.
If this verification is completed successfully, the user_id is known to represent the unique
identifier for the authenticated user, within the scope of the issuer
(iss). If storing the identifier in a user database table and multiple identity providers are supported by your application, it is recommended that both values be stored upon account creation and queried upon each subsequent ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access