La réponse dépend du fournisseur d'identité (Google, Auth0, IBM, Twitter, etc.).
Dans OAuth 2.0, deux jetons sont renvoyés : le jeton d'accès et, éventuellement, le jeton de rafraîchissement.
Le jeton d'accès est utilisé pour autoriser l'accès. Cela peut vous permettre ou non d'accéder aux informations d'identité à partir d'un point de terminaison userinfo. Le jeton d'identité contient ces informations. Un jeton d'accès peut être soit un jeton opaque, ce qui signifie qu'il ne contient aucune information que vous puissiez décoder, soit un JWT signé. La quantité et le type d'informations sont propres au fournisseur d'identité. Les jetons d'accès ont une durée de vie courte et expirent, généralement au bout de 3600 secondes. Il n'est pas nécessaire de stocker le jeton d'accès, sauf pour la mise en cache locale, car le jeton n'a plus aucune valeur après l'expiration.
Le jeton d'actualisation est utilisé pour créer de nouveaux jetons d'accès. Associé à l'identifiant et au secret du client OAuth 2.0, vous pouvez créer des jetons d'accès jusqu'à ce que le jeton d'actualisation expire ou soit invalidé.
OIDC (OpenID Connect) ajoute l'identité à OAuth 2.0. OIDC fournit un jeton d'identité qui fournit des informations sur l'utilisateur demandées par les champs d'application d'OAuth et approuvées par l'utilisateur qui possède l'identité. La plupart des fournisseurs d'identité implémentent OIDC avec leur implémentation d'OAuth. Les jetons d'identité expirent également et peuvent être révoqués.
Dans Google Cloud, vous pouvez utiliser le jeton d'identité pour fournir un accès basé sur l'identité. Vous attribuez l'identité (adresse électronique) avec des rôles au service (une instance de Compute Engine ou un objet de stockage dans le nuage). Si l'en-tête HTTP "Authorization : Bearer " est présent, valide et correspond à l'adresse électronique, l'accès au service est accordé en fonction des rôles attribués à l'identité.
Le stockage des jetons OAuth dans la session web est une mauvaise pratique de sécurité, à moins qu'ils ne soient cryptés de manière unique pour chaque session. Une meilleure pratique consiste à stocker les jetons OAuth dans une base de données et à les rechercher en cas de besoin à l'aide d'un identifiant opaque stocké dans la session web.
Tous les fournisseurs d'identité ne prennent pas en charge les jetons de rafraîchissement pour tous les types de subventions OAuth. Il s'agit d'un accès "hors ligne" qui peut être refusé, ce qui signifie qu'une fois le jeton d'accès expiré, l'utilisateur devra à nouveau autoriser votre application.