Tester l'implémentation OAuth d'association de comptes Google
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
L'outil de test de validation OAuth de l'association de compte Google teste votre implémentation OAuth pour vérifier que Google peut accéder aux points de terminaison et que les points de terminaison renvoient les réponses attendues pour une implémentation valide de l'association de compte Google.
- Si vous n'êtes pas encore connecté à l'outil, connectez-vous avec votre compte Google à l'aide du bouton Se connecter.
Associez votre compte à l'aide de l'outil de démonstration d'association de comptes Google. Vous devez l'associer au compte avec lequel vous exécutez l'outil de test de validation.
Saisissez votre ID de projet, puis cliquez sur le bouton Run (Exécuter). Il doit s'agir de l'ID de service que vous avez utilisé pour associer votre compte à l'étape précédente.
Test de validation du jeton d'accès
Les jetons d'accès renvoyés à partir de votre point de terminaison d'échange de jetons sont validés pour s'assurer que les réponses sont au bon format et qu'un jeton d'actualisation valide est renvoyé.
Test |
Explication |
Vérifier que le jeton d'accès n'est pas au format JWT |
L'association de comptes Google n'est pas compatible avec les jetons d'accès JWT. Si un jeton JWT est détecté, l'avertissement suivant s'affiche : The access token seems to be a JWT which is not supported for token exchange endpoints.
|
Vérifiez que le jeton d'accès éligible à l'expiration dispose d'un jeton d'actualisation. |
Un jeton d'actualisation doit être fourni lorsque le jeton d'accès expire. Ce test échouera si aucun jeton d'actualisation n'est trouvé. |
Test de validation du jeton d'actualisation
Les jetons d'actualisation sont testés pour vous assurer que votre point de terminaison d'échange de jetons les échange correctement contre de nouveaux jetons d'accès.
Test |
Explication |
Valider la réponse du jeton d'actualisation non valide. |
Votre serveur doit renvoyer une erreur HTTP 400 Bad Request avec {"error": "invalid_grant"} en réponse à une requête de jeton d'actualisation non valide. Si la réponse ne correspond pas au code ou au message d'erreur, ce scénario de test échouera. Pour en savoir plus, consultez la section Échanger des jetons d'actualisation contre des jetons d'accès. |
Validez l'actualisation du jeton d'accès. |
De nouveaux jetons d'accès doivent être renvoyés en réponse aux demandes de jetons d'actualisation. Si votre serveur fournit le même jeton d'accès, le cas de test échoue. |
Vérifiez que le jeton d'accès non expiré fonctionne. |
|
Le jeton d'actualisation de validation n'a pas été remplacé lors de l'actualisation. |
Nous vérifions si les jetons d'actualisation sont modifiés après une requête de jeton d'actualisation. Si le jeton d'actualisation change, votre serveur ne doit invalider un ancien jeton d'actualisation qu'après qu'un nouveau jeton d'actualisation a été utilisé, afin d'éviter les conditions de course qui peuvent endommager l'association de compte d'un utilisateur. Le test échouera si vous invalidez l'ancien jeton d'actualisation avant que le nouveau ne soit émis. |
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/25 (UTC).
[null,null,["Dernière mise à jour le 2025/07/25 (UTC)."],[[["\u003cp\u003eThe Google Account Linking OAuth validation test tool helps ensure your implementation is compatible with Google's requirements by verifying endpoint access and responses.\u003c/p\u003e\n"],["\u003cp\u003eTo use the tool, sign in with your Google Account, link your account using the demo tool with your Service ID, and run the test with your Project ID.\u003c/p\u003e\n"],["\u003cp\u003eThe tool validates access tokens to ensure they are not in JWT format and include a refresh token when expirable.\u003c/p\u003e\n"],["\u003cp\u003eRefresh tokens are tested to ensure they can be exchanged for new access tokens and that error responses are correctly formatted.\u003c/p\u003e\n"],["\u003cp\u003eThe tool helps prevent potential account linking issues by checking for refresh token rotation behavior during refresh requests.\u003c/p\u003e\n"]]],[],null,["# Test your Google Account Linking OAuth Implementation\n\nThe Google Account Linking OAuth validation test tool tests your OAuth\nimplementation to verify Google is able to access the endpoints and that the\nendpoints are returning the responses expected for a valid Google Account\nLinking implementation.\n\nUsing the test tool\n-------------------\n\n1. If you haven't already signed into the tool, sign in with your Google Account using the **Sign in** button.\n2. Link your account using the [Google Account Linking demo tool](https://gal-demo.withgoogle.com). You should link with the same account you are running the validation test tool with.\n\n | **Note:** The **Service ID** to use in the demo tool is the one you obtained during the [Account Linking registration](https://developers.google.com/identity/account-linking/registration) process.\n3. Enter your **Project ID** and click the **Run** button. This should be the same as the **Service ID** you used to link your account in the previous step.\n\nTool Guide\n----------\n\n### Access token validation test\n\nAccess tokens returned from your token exchange endpoint are validated to ensure responses are in the right format and that a valid refresh token is returned.\n\n| Test | Explanation |\n|----------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Validate access token is not in JWT format | Google Account Linking does not support JWT for access tokens. If JWT is detected, the following warning is displayed: `The access token seems to be a JWT which is not supported for token exchange endpoints.` |\n| Validate expirable access token has refresh token. | A refresh token must be provided when the access token is expirable. This test will fail if no refresh token is found. |\n\n### Refresh token validation test\n\nRefresh tokens are tested to ensure your token exchange endpoint properly exchanges them for new access tokens.\n\n| Test | Explanation |\n|--------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Validate invalid refresh token response. | Your server should return an HTTP `400 Bad Request` error with `{\"error\": \"invalid_grant\"}` to an invalid refresh token request. If the response does not match the error code or message, this test case will fail. Visit [exchange refresh tokens for access tokens](https://developers.google.com/identity/account-linking/oauth-linking?oauth=code#exchange_refresh_tokens_for_access_tokens) for more information. |\n| Validate access token refresh. | New access tokens should be returned in response to refresh token requests. If your server provides the same access token, the test case will fail. |\n| Validate unexpired access token works. | |\n| Validate refresh token was not rotated during refresh. | We check if refresh tokens are changed after a refresh token request. If the refresh token changes, your server should only invalidate an old refresh token after a new refresh token has been used, to prevent race conditions that may break a user's account linking. The test will fail if you invalidate the old refresh token before the new one is issued. |"]]