CINXE.COM
Migrate to FedCM | Authentication | Google for Developers
<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="Google for Developers"> <meta property="og:type" content="website"><meta name="theme-color" content="#009688"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/developers/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/favicon-new.png"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/touchicon-180-new.png"><link rel="canonical" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration"><link rel="search" type="application/opensearchdescription+xml" title="Google for Developers" href="https://developers.google.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration" /><link rel="alternate" hreflang="x-default" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration" /><link rel="alternate" hreflang="ar" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=ar" /><link rel="alternate" hreflang="bn" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=bn" /><link rel="alternate" hreflang="zh-Hans" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=zh-tw" /><link rel="alternate" hreflang="fa" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=fa" /><link rel="alternate" hreflang="fr" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=fr" /><link rel="alternate" hreflang="de" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=de" /><link rel="alternate" hreflang="he" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=he" /><link rel="alternate" hreflang="hi" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=hi" /><link rel="alternate" hreflang="id" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=id" /><link rel="alternate" hreflang="it" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=it" /><link rel="alternate" hreflang="ja" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=ja" /><link rel="alternate" hreflang="ko" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=ko" /><link rel="alternate" hreflang="pl" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=pt-br" /><link rel="alternate" hreflang="ru" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=ru" /><link rel="alternate" hreflang="es-419" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=es-419" /><link rel="alternate" hreflang="th" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=th" /><link rel="alternate" hreflang="tr" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=tr" /><link rel="alternate" hreflang="vi" href="https://developers.google.com/identity/gsi/web/guides/fedcm-migration?hl=vi" /><title>Migrate to FedCM | Authentication | Google for Developers</title> <meta property="og:title" content="Migrate to FedCM | Authentication | Google for Developers"><meta property="og:url" content="https://developers.google.com/identity/gsi/web/guides/fedcm-migration"><meta property="og:image" content="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/opengraph/teal.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="675"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Migrate to FedCM" } </script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Google Identity", "item": "https://developers.google.com/identity" },{ "@type": "ListItem", "position": 2, "name": "Authentication", "item": "https://developers.google.com/identity/authentication" },{ "@type": "ListItem", "position": 3, "name": "Migrate to FedCM", "item": "https://developers.google.com/identity/gsi/web/guides/fedcm-migration" }] } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="teal" type="article" layout="docs" concierge='closed' display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><devsite-header role="banner"> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> <a href="https://developers.google.com/identity" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Identity" > <svg class="devsite-google-wordmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 148 48"> <title>Google</title> <path class="devsite-google-wordmark-svg-path" d="M19.58,37.65c-9.87,0-18.17-8.04-18.17-17.91c0-9.87,8.3-17.91,18.17-17.91c5.46,0,9.35,2.14,12.27,4.94l-3.45,3.45c-2.1-1.97-4.93-3.49-8.82-3.49c-7.21,0-12.84,5.81-12.84,13.02c0,7.21,5.64,13.02,12.84,13.02c4.67,0,7.34-1.88,9.04-3.58c1.4-1.4,2.32-3.41,2.66-6.16H19.58v-4.89h16.47c0.18,0.87,0.26,1.92,0.26,3.06c0,3.67-1.01,8.21-4.24,11.44C28.93,35.9,24.91,37.65,19.58,37.65z M61.78,26.12c0,6.64-5.1,11.53-11.36,11.53s-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53S61.78,19.43,61.78,26.12z M56.8,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C53.84,33.11,56.8,30.22,56.8,26.12z M87.25,26.12c0,6.64-5.1,11.53-11.36,11.53c-6.26,0-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53C82.15,14.59,87.25,19.43,87.25,26.12zM82.28,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C79.32,33.11,82.28,30.22,82.28,26.12z M112.09,15.29v20.7c0,8.52-5.02,12.01-10.96,12.01c-5.59,0-8.95-3.76-10.22-6.81l4.41-1.83c0.79,1.88,2.71,4.1,5.81,4.1c3.8,0,6.16-2.36,6.16-6.77v-1.66h-0.18c-1.14,1.4-3.32,2.62-6.07,2.62c-5.76,0-11.05-5.02-11.05-11.49c0-6.51,5.28-11.57,11.05-11.57c2.75,0,4.93,1.22,6.07,2.58h0.18v-1.88H112.09z M107.64,26.16c0-4.06-2.71-7.03-6.16-7.03c-3.49,0-6.42,2.97-6.42,7.03c0,4.02,2.93,6.94,6.42,6.94C104.93,33.11,107.64,30.18,107.64,26.16z M120.97,3.06v33.89h-5.07V3.06H120.97z M140.89,29.92l3.93,2.62c-1.27,1.88-4.32,5.11-9.61,5.11c-6.55,0-11.28-5.07-11.28-11.53c0-6.86,4.77-11.53,10.71-11.53c5.98,0,8.91,4.76,9.87,7.34l0.52,1.31l-15.42,6.38c1.18,2.31,3.01,3.49,5.59,3.49C137.79,33.11,139.58,31.84,140.89,29.92zM128.79,25.77l10.31-4.28c-0.57-1.44-2.27-2.45-4.28-2.45C132.24,19.04,128.66,21.31,128.79,25.77z"/> </svg>Identity </a> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <devsite-tabs class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab class="devsite-dropdown devsite-active "> <a href="https://developers.google.com/identity/authentication" track-metadata-eventdetail="https://developers.google.com/identity/authentication" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - authentication" track-metadata-module="primary nav" aria-label="Authentication, selected" data-category="Site-Wide Custom Events" data-label="Tab: Authentication" track-name="authentication" > Authentication </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Authentication" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/authentication" track-metadata-position="nav - authentication" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Authentication" track-name="authentication" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Sign In with Google SDKs</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/identity/android-credential-manager" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/android-credential-manager" track-metadata-position="nav - authentication" track-metadata-module="tertiary nav" track-metadata-module_headline="sign in with google sdks" tooltip > <div class="devsite-nav-item-title"> Credential Manager for Android </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/identity/gsi/web/guides/overview" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/gsi/web/guides/overview" track-metadata-position="nav - authentication" track-metadata-module="tertiary nav" track-metadata-module_headline="sign in with google sdks" tooltip > <div class="devsite-nav-item-title"> Sign In with Google for Web (including One Tap) </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/identity/sign-in/ios/start" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/sign-in/ios/start" track-metadata-position="nav - authentication" track-metadata-module="tertiary nav" track-metadata-module_headline="sign in with google sdks" tooltip > <div class="devsite-nav-item-title"> Google Sign-In for iOS and macOS </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Industry standards</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/identity/passkeys" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/passkeys" track-metadata-position="nav - authentication" track-metadata-module="tertiary nav" track-metadata-module_headline="sign in with google sdks" tooltip > <div class="devsite-nav-item-title"> Passkeys </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/identity/openid-connect/openid-connect" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/openid-connect/openid-connect" track-metadata-position="nav - authentication" track-metadata-module="tertiary nav" track-metadata-module_headline="sign in with google sdks" tooltip > <div class="devsite-nav-item-title"> OpenID Connect </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Legacy Sign In</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/identity/one-tap/android/overview" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/one-tap/android/overview" track-metadata-position="nav - authentication" track-metadata-module="tertiary nav" track-metadata-module_headline="sign in with google sdks" tooltip > <div class="devsite-nav-item-title"> One Tap sign-up/sign-in for Android </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/identity/sign-in/android/legacy-start-integrating" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/sign-in/android/legacy-start-integrating" track-metadata-position="nav - authentication" track-metadata-module="tertiary nav" track-metadata-module_headline="sign in with google sdks" tooltip > <div class="devsite-nav-item-title"> Google Sign-In for Android </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/identity/sign-in/web/sign-in" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/sign-in/web/sign-in" track-metadata-position="nav - authentication" track-metadata-module="tertiary nav" track-metadata-module_headline="sign in with google sdks" tooltip > <div class="devsite-nav-item-title"> Google Sign-In for Web </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown "> <a href="https://developers.google.com/identity/authorization" track-metadata-eventdetail="https://developers.google.com/identity/authorization" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - authorization" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Authorization" track-name="authorization" > Authorization </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Authorization" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/authorization" track-metadata-position="nav - authorization" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Authorization" track-name="authorization" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Call Google APIs</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/identity/sign-in/android/authorize-access" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/sign-in/android/authorize-access" track-metadata-position="nav - authorization" track-metadata-module="tertiary nav" track-metadata-module_headline="call google apis" tooltip > <div class="devsite-nav-item-title"> Authorizing for Android </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/identity/oauth2/web/guides/overview" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/oauth2/web/guides/overview" track-metadata-position="nav - authorization" track-metadata-module="tertiary nav" track-metadata-module_headline="call google apis" tooltip > <div class="devsite-nav-item-title"> Authorizing for Web </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/identity/sign-in/ios/api-access" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/sign-in/ios/api-access" track-metadata-position="nav - authorization" track-metadata-module="tertiary nav" track-metadata-module_headline="call google apis" tooltip > <div class="devsite-nav-item-title"> Authorizing for iOS/macOS </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/identity/protocols/oauth2" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/protocols/oauth2" track-metadata-position="nav - authorization" track-metadata-module="tertiary nav" track-metadata-module_headline="call google apis" tooltip > <div class="devsite-nav-item-title"> Using OAuth 2.0 </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Share data with Google apps and devices</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/identity/account-linking" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/account-linking" track-metadata-position="nav - authorization" track-metadata-module="tertiary nav" track-metadata-module_headline="call google apis" tooltip > <div class="devsite-nav-item-title"> Google Account Linking </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown "> <a href="https://developers.google.com/identity/credential-management" track-metadata-eventdetail="https://developers.google.com/identity/credential-management" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - credential management" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Credential management" track-name="credential management" > Credential management </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Credential management" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/credential-management" track-metadata-position="nav - credential management" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Credential management" track-name="credential management" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Android</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/identity/android-credential-manager" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/android-credential-manager" track-metadata-position="nav - credential management" track-metadata-module="tertiary nav" track-metadata-module_headline="android" tooltip > <div class="devsite-nav-item-title"> Credential Manager </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/identity/blockstore/android" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/blockstore/android" track-metadata-position="nav - credential management" track-metadata-module="tertiary nav" track-metadata-module_headline="android" tooltip > <div class="devsite-nav-item-title"> Blockstore </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/identity/smartlock-passwords/android/associate-apps-and-sites" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/smartlock-passwords/android/associate-apps-and-sites" track-metadata-position="nav - credential management" track-metadata-module="tertiary nav" track-metadata-module_headline="android" tooltip > <div class="devsite-nav-item-title"> Digital Asset Links </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/guide/topics/text/autofill" track-type="nav" track-metadata-eventdetail="https://developer.android.com/guide/topics/text/autofill" track-metadata-position="nav - credential management" track-metadata-module="tertiary nav" track-metadata-module_headline="android" tooltip > <div class="devsite-nav-item-title"> Android autofill framework </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Web</li> <li class="devsite-nav-item"> <a href="https://web.dev/sign-in-form-best-practices/" track-type="nav" track-metadata-eventdetail="https://web.dev/sign-in-form-best-practices/" track-metadata-position="nav - credential management" track-metadata-module="tertiary nav" track-metadata-module_headline="android" tooltip > <div class="devsite-nav-item-title"> Autocomplete </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Cross-platform</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/identity/credential-sharing" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/credential-sharing" track-metadata-position="nav - credential management" track-metadata-module="tertiary nav" track-metadata-module_headline="android" tooltip > <div class="devsite-nav-item-title"> Seamless credential sharing </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown "> <a href="https://developers.google.com/identity/credential-verification" track-metadata-eventdetail="https://developers.google.com/identity/credential-verification" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - credential verification" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Credential verification" track-name="credential verification" > Credential verification </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Credential verification" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/credential-verification" track-metadata-position="nav - credential verification" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Credential verification" track-name="credential verification" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Android</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/identity/sms-retriever/overview" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/sms-retriever/overview" track-metadata-position="nav - credential verification" track-metadata-module="tertiary nav" track-metadata-module_headline="android" tooltip > <div class="devsite-nav-item-title"> Verify users by SMS </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/identity/phone-number-hint/android" track-type="nav" track-metadata-eventdetail="https://developers.google.com/identity/phone-number-hint/android" track-metadata-position="nav - credential verification" track-metadata-module="tertiary nav" track-metadata-module_headline="android" tooltip > <div class="devsite-nav-item-title"> Phone Number Hint </div> </a> </li> </ul> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Web</li> <li class="devsite-nav-item"> <a href="https://web.dev/web-otp/" track-type="nav" track-metadata-eventdetail="https://web.dev/web-otp/" track-metadata-position="nav - credential verification" track-metadata-module="tertiary nav" track-metadata-module_headline="android" tooltip > <div class="devsite-nav-item-title"> Verify phone numbers on the web </div> </a> </li> </ul> </div> </div> </div> </tab> </nav> </devsite-tabs> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="Authentication" tenant-name="Google for Developers" project-scope="/identity/authentication" url-scoped="https://developers.google.com/s/results/identity/authentication" > <form class="devsite-search-form" action="https://developers.google.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <devsite-user enable-profiles fp-auth id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-product-id-row" > <div class="devsite-product-description-row"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/identity/authentication" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Authentication" > Authentication </a> </li> </ul> </div> </div> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab > <a href="https://developers.google.com/identity/android-credential-manager" track-metadata-eventdetail="https://developers.google.com/identity/android-credential-manager" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - credential manager for android" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Credential Manager for Android" track-name="credential manager for android" > Credential Manager for Android </a> </tab> <tab class="devsite-active"> <a href="https://developers.google.com/identity/gsi/web/guides/overview" track-metadata-eventdetail="https://developers.google.com/identity/gsi/web/guides/overview" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - sign in with google for web" track-metadata-module="primary nav" aria-label="Sign In with Google for Web, selected" data-category="Site-Wide Custom Events" data-label="Tab: Sign In with Google for Web" track-name="sign in with google for web" > Sign In with Google for Web </a> </tab> <tab > <a href="https://developers.google.com/identity/sign-in/ios/start-integrating" track-metadata-eventdetail="https://developers.google.com/identity/sign-in/ios/start-integrating" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - google sign-in for ios and macos" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Google Sign-In for iOS and macOS" track-name="google sign-in for ios and macos" > Google Sign-In for iOS and macOS </a> </tab> <tab > <a href="https://developers.google.com/identity/passkeys" track-metadata-eventdetail="https://developers.google.com/identity/passkeys" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - passkeys" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Passkeys" track-name="passkeys" > Passkeys </a> </tab> <tab > <a href="https://developers.google.com/identity/openid-connect/openid-connect" track-metadata-eventdetail="https://developers.google.com/identity/openid-connect/openid-connect" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - openid connect" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: OpenID Connect" track-name="openid connect" > OpenID Connect </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" > <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> <a href="https://developers.google.com/identity" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Identity" > <svg class="devsite-google-wordmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 148 48"> <title>Google</title> <path class="devsite-google-wordmark-svg-path" d="M19.58,37.65c-9.87,0-18.17-8.04-18.17-17.91c0-9.87,8.3-17.91,18.17-17.91c5.46,0,9.35,2.14,12.27,4.94l-3.45,3.45c-2.1-1.97-4.93-3.49-8.82-3.49c-7.21,0-12.84,5.81-12.84,13.02c0,7.21,5.64,13.02,12.84,13.02c4.67,0,7.34-1.88,9.04-3.58c1.4-1.4,2.32-3.41,2.66-6.16H19.58v-4.89h16.47c0.18,0.87,0.26,1.92,0.26,3.06c0,3.67-1.01,8.21-4.24,11.44C28.93,35.9,24.91,37.65,19.58,37.65z M61.78,26.12c0,6.64-5.1,11.53-11.36,11.53s-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53S61.78,19.43,61.78,26.12z M56.8,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C53.84,33.11,56.8,30.22,56.8,26.12z M87.25,26.12c0,6.64-5.1,11.53-11.36,11.53c-6.26,0-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53C82.15,14.59,87.25,19.43,87.25,26.12zM82.28,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C79.32,33.11,82.28,30.22,82.28,26.12z M112.09,15.29v20.7c0,8.52-5.02,12.01-10.96,12.01c-5.59,0-8.95-3.76-10.22-6.81l4.41-1.83c0.79,1.88,2.71,4.1,5.81,4.1c3.8,0,6.16-2.36,6.16-6.77v-1.66h-0.18c-1.14,1.4-3.32,2.62-6.07,2.62c-5.76,0-11.05-5.02-11.05-11.49c0-6.51,5.28-11.57,11.05-11.57c2.75,0,4.93,1.22,6.07,2.58h0.18v-1.88H112.09z M107.64,26.16c0-4.06-2.71-7.03-6.16-7.03c-3.49,0-6.42,2.97-6.42,7.03c0,4.02,2.93,6.94,6.42,6.94C104.93,33.11,107.64,30.18,107.64,26.16z M120.97,3.06v33.89h-5.07V3.06H120.97z M140.89,29.92l3.93,2.62c-1.27,1.88-4.32,5.11-9.61,5.11c-6.55,0-11.28-5.07-11.28-11.53c0-6.86,4.77-11.53,10.71-11.53c5.98,0,8.91,4.76,9.87,7.34l0.52,1.31l-15.42,6.38c1.18,2.31,3.01,3.49,5.59,3.49C137.79,33.11,139.58,31.84,140.89,29.92zM128.79,25.77l10.31-4.28c-0.57-1.44-2.27-2.45-4.28-2.45C132.24,19.04,128.66,21.31,128.79,25.77z"/> </svg>Identity </a> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/identity/authentication" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Authentication" track-name="authentication" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Authentication" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Authentication </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Authentication" track-name="authentication" > <span class="devsite-nav-text" tooltip menu="Authentication"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Authentication"> </span> </span> </li> </ul> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/identity/android-credential-manager" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Credential Manager for Android" track-name="credential manager for android" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Credential Manager for Android" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Credential Manager for Android </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/identity/gsi/web/guides/overview" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Sign In with Google for Web" track-name="sign in with google for web" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Sign In with Google for Web" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip menu="_book"> Sign In with Google for Web </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/identity/sign-in/ios/start-integrating" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Google Sign-In for iOS and macOS" track-name="google sign-in for ios and macos" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Sign-In for iOS and macOS" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Sign-In for iOS and macOS </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/identity/passkeys" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Passkeys" track-name="passkeys" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Passkeys" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Passkeys </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/identity/openid-connect/openid-connect" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: OpenID Connect" track-name="openid connect" data-category="Site-Wide Custom Events" data-label="Responsive Tab: OpenID Connect" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > OpenID Connect </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/identity/authorization" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Authorization" track-name="authorization" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Authorization" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Authorization </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Authorization" track-name="authorization" > <span class="devsite-nav-text" tooltip menu="Authorization"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Authorization"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/identity/credential-management" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Credential management" track-name="credential management" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Credential management" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Credential management </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Credential management" track-name="credential management" > <span class="devsite-nav-text" tooltip menu="Credential management"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Credential management"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/identity/credential-verification" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Credential verification" track-name="credential verification" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Credential verification" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Credential verification </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Credential verification" track-name="credential verification" > <span class="devsite-nav-text" tooltip menu="Credential verification"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Credential verification"> </span> </span> </li> </ul> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Get started</span> </div></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/offerings" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/offerings" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/offerings" ><span class="devsite-nav-text" tooltip>Features</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/integrate" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/integrate" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/integrate" ><span class="devsite-nav-text" tooltip>Integration considerations</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/supported-browsers" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/supported-browsers" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/supported-browsers" ><span class="devsite-nav-text" tooltip>Supported browsers</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/get-google-api-clientid" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/get-google-api-clientid" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/get-google-api-clientid" ><span class="devsite-nav-text" tooltip>Setup</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/client-library" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/client-library" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/client-library" ><span class="devsite-nav-text" tooltip>Load the client library</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/tools/configurator" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/tools/configurator" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/tools/configurator" ><span class="devsite-nav-text" tooltip>Generate the integration code</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Case studies</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/identity/sign-in/case-studies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/case-studies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/case-studies" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/identity/sign-in/case-studies/pinterest" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/case-studies/pinterest" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/case-studies/pinterest" ><span class="devsite-nav-text" tooltip>Pinterest</span></a></li><li class="devsite-nav-item"><a href="/identity/sign-in/case-studies/reddit" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/case-studies/reddit" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/case-studies/reddit" ><span class="devsite-nav-text" tooltip>Reddit</span></a></li><li class="devsite-nav-item"><a href="/identity/sign-in/case-studies/iron-company" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/case-studies/iron-company" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/case-studies/iron-company" ><span class="devsite-nav-text" tooltip>Iron Company</span></a></li><li class="devsite-nav-item"><a href="/identity/sign-in/case-studies/ebay" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/case-studies/ebay" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/case-studies/ebay" ><span class="devsite-nav-text" tooltip>eBay</span></a></li><li class="devsite-nav-item"><a href="/identity/sign-in/case-studies/vikatan" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/case-studies/vikatan" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/case-studies/vikatan" ><span class="devsite-nav-text" tooltip>vikatan</span></a></li><li class="devsite-nav-item"><a href="/identity/sign-in/case-studies/the-news-minute" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/case-studies/the-news-minute" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/case-studies/the-news-minute" ><span class="devsite-nav-text" tooltip>The News Minute</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Sign in With Google button</span> </div></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/personalized-button" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/personalized-button" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/personalized-button" ><span class="devsite-nav-text" tooltip>Understand personalized button</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/display-button" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/display-button" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/display-button" ><span class="devsite-nav-text" tooltip>Display the Sign in With Google button</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>One Tap guides</span> </div></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/features" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/features" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/features" ><span class="devsite-nav-text" tooltip>Understand the One Tap user experience</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/automatic-sign-in-sign-out" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/automatic-sign-in-sign-out" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/automatic-sign-in-sign-out" ><span class="devsite-nav-text" tooltip>Automatic sign-in and sign-out</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/display-google-one-tap" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/display-google-one-tap" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/display-google-one-tap" ><span class="devsite-nav-text" tooltip>Display the One Tap prompt</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/itp" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/itp" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/itp" ><span class="devsite-nav-text" tooltip>One Tap on ITP browsers</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Advanced topics</span> </div></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/verify-google-id-token" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/verify-google-id-token" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/verify-google-id-token" ><span class="devsite-nav-text" tooltip>Verify the Google ID token on your server side</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/toggle-outside-tap" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/toggle-outside-tap" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/toggle-outside-tap" ><span class="devsite-nav-text" tooltip>Toggle outside tap to close One Tap</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/change-sign-in-context" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/change-sign-in-context" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/change-sign-in-context" ><span class="devsite-nav-text" tooltip>Change the One Tap sign-in context</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/subdomains" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/subdomains" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/subdomains" ><span class="devsite-nav-text" tooltip>Display One Tap across subdomains</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/toggle-display-with-cookies" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/toggle-display-with-cookies" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/toggle-display-with-cookies" ><span class="devsite-nav-text" tooltip>Toggle the One Tap display with cookies</span></a></li> <li class="devsite-nav-item devsite-nav-deprecated"><a href="/identity/gsi/web/guides/change-position" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/change-position" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/change-position" ><span class="devsite-nav-text" tooltip>Change the One Tap prompt position</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/receive-notifications-prompt-ui-status" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/receive-notifications-prompt-ui-status" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/receive-notifications-prompt-ui-status" ><span class="devsite-nav-text" tooltip>Receive notifications on the prompt UI status</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/use-one-tap-js-api" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/use-one-tap-js-api" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/use-one-tap-js-api" ><span class="devsite-nav-text" tooltip>Use the JavaScript API</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/revoke" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/revoke" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/revoke" ><span class="devsite-nav-text" tooltip>Revoke an ID token</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/display-browsers-native-credential-manager" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/display-browsers-native-credential-manager" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/display-browsers-native-credential-manager" ><span class="devsite-nav-text" tooltip>Display the browser's native credential manager</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/handle-credential-responses-js-functions" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/handle-credential-responses-js-functions" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/handle-credential-responses-js-functions" ><span class="devsite-nav-text" tooltip>Handle credential responses with JavaScript functions</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/devices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/devices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/devices" ><span class="devsite-nav-text" tooltip>Sign-In on TVs and Limited Input Devices</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/amp/intermediate-iframe" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/amp/intermediate-iframe" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/amp/intermediate-iframe" ><span class="devsite-nav-text" tooltip>Integrate One Tap via an Iframe</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Resources</span> </div></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/fedcm-migration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/fedcm-migration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/fedcm-migration" ><span class="devsite-nav-text" tooltip>Migrate to FedCM</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/guides/migration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/guides/migration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/guides/migration" ><span class="devsite-nav-text" tooltip>Migrating from Google Sign-In</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/tools/configurator" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/tools/configurator" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/tools/configurator" ><span class="devsite-nav-text" tooltip>Code Generator</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Reference</span> </div></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/reference/html-reference" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/reference/html-reference" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/reference/html-reference" ><span class="devsite-nav-text" tooltip>HTML API</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/reference/js-reference" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/reference/js-reference" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/reference/js-reference" ><span class="devsite-nav-text" tooltip>JavaScript API</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/amp/nonamp-reference" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/amp/nonamp-reference" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/amp/nonamp-reference" ><span class="devsite-nav-text" tooltip>Intermediate Iframe API</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/amp/intermediate-support-reference" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/amp/intermediate-support-reference" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/amp/intermediate-support-reference" ><span class="devsite-nav-text" tooltip>Intermediate Iframe Support API</span></a></li> <li class="devsite-nav-item"><a href="/identity/gsi/web/reference/release-notes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/reference/release-notes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/reference/release-notes" ><span class="devsite-nav-text" tooltip>Release Notes</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Deprecated</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-deprecated"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Google Sign-In</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/identity/sign-in/web/deprecation-and-sunset" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/web/deprecation-and-sunset" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/web/deprecation-and-sunset" ><span class="devsite-nav-text" tooltip>Deprecation and sunset</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Basics</span> </div></li><li class="devsite-nav-item"><a href="/identity/sign-in/web/sign-in" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/web/sign-in" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/web/sign-in" ><span class="devsite-nav-text" tooltip>Integrate Google Sign-In</span></a></li><li class="devsite-nav-item"><a href="/identity/sign-in/web/people" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/web/people" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/web/people" ><span class="devsite-nav-text" tooltip>Get Profile Information</span></a></li><li class="devsite-nav-item"><a href="/identity/sign-in/web/backend-auth" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/web/backend-auth" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/web/backend-auth" ><span class="devsite-nav-text" tooltip>Authenticate with a Backend Server</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Additional Capabilities</span> </div></li><li class="devsite-nav-item"><a href="/identity/sign-in/web/build-button" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/web/build-button" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/web/build-button" ><span class="devsite-nav-text" tooltip>Customize the Sign-In Button</span></a></li><li class="devsite-nav-item"><a href="/identity/sign-in/web/session-state" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/web/session-state" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/web/session-state" ><span class="devsite-nav-text" tooltip>Monitor the User's Session State</span></a></li><li class="devsite-nav-item"><a href="/identity/sign-in/web/incremental-auth" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/web/incremental-auth" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/web/incremental-auth" ><span class="devsite-nav-text" tooltip>Request Additional Permissions</span></a></li><li class="devsite-nav-item"><a href="/identity/sign-in/web/listeners" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/web/listeners" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/web/listeners" ><span class="devsite-nav-text" tooltip>Integrate Sign-In Using Listeners</span></a></li><li class="devsite-nav-item"><a href="/identity/sign-in/web/server-side-flow" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/web/server-side-flow" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/web/server-side-flow" ><span class="devsite-nav-text" tooltip>Google Sign-In for Server-Side Apps</span></a></li><li class="devsite-nav-item"><a href="/identity/sign-in/web/disconnect" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/web/disconnect" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/web/disconnect" ><span class="devsite-nav-text" tooltip>Disconnect and Revoke Scopes</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Cross-Platform Integration</span> </div></li><li class="devsite-nav-item"><a href="/identity/sign-in/web/cross-platform-sign-in" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/web/cross-platform-sign-in" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/web/cross-platform-sign-in" ><span class="devsite-nav-text" tooltip>Cross-Platform Single Sign-In</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Resources</span> </div></li><li class="devsite-nav-item"><a href="/identity/sign-in/web/troubleshooting" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/web/troubleshooting" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/web/troubleshooting" ><span class="devsite-nav-text" tooltip>Troubleshooting</span></a></li><li class="devsite-nav-item"><a href="/identity/sign-in/web/gsi-with-fedcm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/web/gsi-with-fedcm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/web/gsi-with-fedcm" ><span class="devsite-nav-text" tooltip>Use FedCM APIs</span></a></li><li class="devsite-nav-item"><a href="/identity/sign-in/web/quick-migration-guide" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/web/quick-migration-guide" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/web/quick-migration-guide" ><span class="devsite-nav-text" tooltip>Migrate from Google+ Sign-In</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Reference</span> </div></li><li class="devsite-nav-item devsite-nav-deprecated"><a href="/identity/sign-in/web/reference" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/sign-in/web/reference" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/sign-in/web/reference" ><span class="devsite-nav-text" tooltip>JavaScript Client Reference</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-deprecated"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Accelerated Mobile Pages</span><span class="devsite-nav-icon material-icons" data-icon="deprecated" data-title="Deprecated" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/identity/gsi/web/amp/amp" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/amp/amp" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/amp/amp" ><span class="devsite-nav-text" tooltip>Display One Tap in AMP pages</span></a></li><li class="devsite-nav-item"><a href="/identity/gsi/web/amp/amp-reference" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /identity/gsi/web/amp/amp-reference" track-type="bookNav" track-name="click" track-metadata-eventdetail="/identity/gsi/web/amp/amp-reference" ><span class="devsite-nav-text" tooltip>AMP Component API</span></a></li></ul></div></li> </ul> <ul class="devsite-nav-list" menu="Authentication" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Sign In with Google SDKs </span> </span> </li> <li class="devsite-nav-item"> <a href="/identity/android-credential-manager" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Credential Manager for Android" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Credential Manager for Android </span> </a> </li> <li class="devsite-nav-item"> <a href="/identity/gsi/web/guides/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Sign In with Google for Web (including One Tap)" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Sign In with Google for Web (including One Tap) </span> </a> </li> <li class="devsite-nav-item"> <a href="/identity/sign-in/ios/start" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Sign-In for iOS and macOS" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Sign-In for iOS and macOS </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Industry standards </span> </span> </li> <li class="devsite-nav-item"> <a href="/identity/passkeys" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Passkeys" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Passkeys </span> </a> </li> <li class="devsite-nav-item"> <a href="/identity/openid-connect/openid-connect" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: OpenID Connect" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > OpenID Connect </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Legacy Sign In </span> </span> </li> <li class="devsite-nav-item"> <a href="/identity/one-tap/android/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: One Tap sign-up/sign-in for Android" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > One Tap sign-up/sign-in for Android </span> </a> </li> <li class="devsite-nav-item"> <a href="/identity/sign-in/android/legacy-start-integrating" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Sign-In for Android" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Sign-In for Android </span> </a> </li> <li class="devsite-nav-item"> <a href="/identity/sign-in/web/sign-in" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Sign-In for Web" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Sign-In for Web </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Authorization" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Call Google APIs </span> </span> </li> <li class="devsite-nav-item"> <a href="/identity/sign-in/android/authorize-access" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Authorizing for Android" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Authorizing for Android </span> </a> </li> <li class="devsite-nav-item"> <a href="/identity/oauth2/web/guides/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Authorizing for Web" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Authorizing for Web </span> </a> </li> <li class="devsite-nav-item"> <a href="/identity/sign-in/ios/api-access" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Authorizing for iOS/macOS" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Authorizing for iOS/macOS </span> </a> </li> <li class="devsite-nav-item"> <a href="/identity/protocols/oauth2" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Using OAuth 2.0" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Using OAuth 2.0 </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Share data with Google apps and devices </span> </span> </li> <li class="devsite-nav-item"> <a href="/identity/account-linking" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Account Linking" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Account Linking </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Credential management" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Android </span> </span> </li> <li class="devsite-nav-item"> <a href="/identity/android-credential-manager" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Credential Manager" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Credential Manager </span> </a> </li> <li class="devsite-nav-item"> <a href="/identity/blockstore/android" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Blockstore" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Blockstore </span> </a> </li> <li class="devsite-nav-item"> <a href="/identity/smartlock-passwords/android/associate-apps-and-sites" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Digital Asset Links" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Digital Asset Links </span> </a> </li> <li class="devsite-nav-item"> <a href="https://developer.android.com/guide/topics/text/autofill" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Android autofill framework" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Android autofill framework </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Web </span> </span> </li> <li class="devsite-nav-item"> <a href="https://web.dev/sign-in-form-best-practices/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Autocomplete" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Autocomplete </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Cross-platform </span> </span> </li> <li class="devsite-nav-item"> <a href="/identity/credential-sharing" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Seamless credential sharing" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Seamless credential sharing </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Credential verification" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Android </span> </span> </li> <li class="devsite-nav-item"> <a href="/identity/sms-retriever/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Verify users by SMS" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Verify users by SMS </span> </a> </li> <li class="devsite-nav-item"> <a href="/identity/phone-number-hint/android" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Phone Number Hint" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Phone Number Hint </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Web </span> </span> </li> <li class="devsite-nav-item"> <a href="https://web.dev/web-otp/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Verify phone numbers on the web" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Verify phone numbers on the web </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" has-book-nav > <devsite-content> <article class="devsite-article"> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="" > Home </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/products" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="" > Products </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/identity" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="Google Identity" > Google Identity </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/identity/authentication" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="4" track-type="globalNav" track-name="breadcrumb" track-metadata-position="4" track-metadata-eventdetail="Authentication" > Authentication </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/identity/gsi/web/guides/overview" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="5" track-type="globalNav" track-name="breadcrumb" track-metadata-position="5" track-metadata-eventdetail="" > Sign In with Google for Web </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <devsite-feedback position="header" project-name="Authentication" product-id="5186570" bucket="Identity guides" context="External devsite feedback" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="header" class="nocontent" project-icon="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/touchicon-180-new.png" > <button> Send feedback </button> </devsite-feedback> <h1 class="devsite-page-title" tabindex="-1"> Migrate to FedCM </h1> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <div class="devsite-page-title-meta"><devsite-view-release-notes></devsite-view-release-notes></div> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <div class="devsite-article-body clearfix "> <p>This guide helps you understand the changes to your web application introduced by the <a href="https://developer.chrome.com/en/docs/privacy-sandbox/fedcm/" target="_blank" class="external">Federated Credentials Management API</a> (FedCM).</p> <p>When FedCM is enabled the browser displays user prompts and no third-party cookies are used.</p> <h2 id="overview" data-text="Overview" tabindex="-1">Overview</h2> <p>FedCM enables more private sign-in flows without requiring the use of third-party cookies. The browser controls user settings, displays user prompts, and only contacts an Identity Provider such as Google after explicit user consent is given.</p> <p>For most websites, migration occurs seamlessly through backward compatible updates to the Google Identity Services JavaScript library.</p> <aside class="tip"><strong>Tip:</strong><span> During Google experiments and Chrome origin trials, some percentage of the total number of users who sign-in to your website will use the FedCM API. The specific percentage varies and may change without notice. Prior to FedCM becoming mandatory for all sign-in, use <a href="/identity/gsi/web/reference/html-reference#data-use_fedcm_for_prompt"><code translate="no" dir="ltr">data-use_fedcm_for_prompt</code></a> or <a href="/identity/gsi/web/reference/js-reference#use_fedcm_for_prompt"><code translate="no" dir="ltr">use_fedcm_for_prompt</code></a> to choose the sign-in flow, doing so may improve your ability to debug, collect metrics, or to switch all sign-in to FedCM after completing migration.</span></aside> <h2 id="auto_sign_in" data-text="Updates on Auto Sign-in feature" tabindex="-1">Updates on Auto Sign-in feature</h2> <p><a href="https://developers.googleblog.com/2023/08/announcing-federated-credential-management-beta-for-gis.html">Federated Credential Management (FedCM) Beta</a> for Google Identity Services was launched in August 2023. Many developers tested the API and have provided valuable feedback.</p> <p>One response Google heard from developers is about the FedCM automatic sign-in flow user gesture requirement. For improved privacy, Chrome requires users to reconfirm that they want to sign in to the website with Google Account in each Chrome instance even if the user approved the website prior to the FedCM rollout. This one-time reconfirmation is achieved through a single click of the One Tap prompt to demonstrate user intent to sign-in. This change may cause an initial disruption in automatic sign-in conversion rates for some websites.</p> <p>Recently in M121, Chrome made a <a href="https://developers.google.com/privacy-sandbox/3pcd/fedcm-updates#chrome_121_december_2023">change</a> to the FedCM automatic sign-in flow UX. The reconfirmation is only required when third-party cookies are restricted. This means:</p> <ol> <li><p>FedCM automatic sign-in does not require reconfirmation for returning users. If users reconfirm with FedCM UI, this reconfirmation will count toward the user gesture requirement for the post-3PCD era.</p></li> <li><p>FedCM automatic sign-in will check the reconfirmation status when the third-party cookies are manually restricted by users today, or by default in future Chrome.</p></li> </ol> <p>With this change, we recommend all automatic sign-in developers migrate to FedCM as soon as possible, to reduce disruption to automatic sign-in conversion rates.</p> <p>For the automatic sign-in flow, GIS JavaScript won't trigger FedCM on an older Chrome (before M121), even if your website chooses to opt-in FedCM.</p> <h2 id="user_journey_differences" data-text="User journey differences" tabindex="-1">User journey differences</h2> <p>The One Tap experiences using FedCM and without FedCM are similar only with minor differences.</p> <h3 id="single-session_new_user" data-text="Single-session new user" tabindex="-1">Single-session new user</h3> <p>Using FedCM, One Tap shows the domain name instead of application name.</p> <table class="vertical-rules"> <tr> <th>Using FedCM</th> <th>Without FedCM</th> </tr> <tr> <td> <img src="/static/identity/gsi/web/images/onetap-new-single-fedcm-marked.png" data-modal-dialog-id="onetap-new-single-fedcm-marked" alt="Single-session new user using FedCM"> <devsite-lightbox id="onetap-new-single-fedcm-marked"> <img src="/static/identity/gsi/web/images/onetap-new-single-fedcm-marked.png"> </devsite-lightbox> </td> <td> <img src="/static/identity/gsi/web/images/onetap-new-single-marked.png" data-modal-dialog-id="onetap-new-single-marked" alt="Single-session new user without FedCM"> <devsite-lightbox id="onetap-new-single-marked"> <img src="/static/identity/gsi/web/images/onetap-new-single-marked.png"> </devsite-lightbox> </td> </tr> </table> <h3 id="single-session_returning_user_with_automatic_sign-in_disabled" data-text="Single-session returning user (with automatic sign-in disabled)" tabindex="-1">Single-session returning user (with automatic sign-in disabled)</h3> <p>Using FedCM, One Tap shows the domain name instead of application name.</p> <table class="vertical-rules"> <tr> <th>Using FedCM</th> <th>Without FedCM</th> </tr> <tr> <td> <img src="/static/identity/gsi/web/images/onetap-sign-in-fedcm-marked.png" data-modal-dialog-id="onetap-sign-in-fedcm-marked" alt="Single-session returning user journey using FedCM (with automatic sign-in disabled)"> <devsite-lightbox id="onetap-sign-in-fedcm-marked"> <img src="/static/identity/gsi/web/images/onetap-sign-in-fedcm-marked.png"> </devsite-lightbox> </td> <td> <img src="/static/identity/gsi/web/images/onetap-sign-in-marked.png" data-modal-dialog-id="onetap-sign-in-marked" alt="Single-session returning user journey without FedCM (with automatic sign-in disabled)"> <devsite-lightbox id="onetap-sign-in-marked"> <img src="/static/identity/gsi/web/images/onetap-sign-in-marked.png"> </devsite-lightbox> </td> </tr> </table> <h3 id="single-session_returning_user_with_automatic_sign-in_enabled" data-text="Single-session returning user (with automatic sign-in enabled)" tabindex="-1">Single-session returning user (with automatic sign-in enabled)</h3> <p>Using FedCM, users can click <strong>X</strong> to cancel the automatic sign-in within 5 seconds instead of clicking the <strong>Cancel</strong> button.</p> <table class="vertical-rules"> <tr> <th>Using FedCM</th> <th>Without FedCM</th> </tr> <tr> <td> <img src="/static/identity/gsi/web/images/auto-sign-in-fedcm-marked.png" data-modal-dialog-id="auto-sign-in-fedcm-marked" alt="Single-session returning user journey using FedCM (with automatic sign-in enabled)"> <devsite-lightbox id="auto-sign-in-fedcm-marked"> <img src="/static/identity/gsi/web/images/auto-sign-in-fedcm-marked.png"> </devsite-lightbox> </td> <td> <img src="/static/identity/gsi/web/images/auto-sign-in-marked.png" data-modal-dialog-id="auto-sign-in-marked" alt="Single-session returning user journey without FedCM (with automatic sign-in enabled)"> <devsite-lightbox id="auto-sign-in-marked"> <img src="/static/identity/gsi/web/images/auto-sign-in-marked.png"> </devsite-lightbox> </td> </tr> </table> <h3 id="multiple-session" data-text="Multiple-session" tabindex="-1">Multiple-session</h3> <p>Using FedCM, One Tap shows the domain name instead of application name.</p> <table class="vertical-rules"> <tr> <th>Using FedCM</th> <th>Without FedCM</th> </tr> <tr> <td> <img src="/static/identity/gsi/web/images/onetap-ac-fedcm-marked.png" data-modal-dialog-id="onetap-ac-fedcm-marked" alt="Multiple-session user using FedCM"> <devsite-lightbox id="onetap-ac-fedcm-marked"> <img src="/static/identity/gsi/web/images/onetap-ac-fedcm-marked.png"> </devsite-lightbox> </td> <td> <img src="/static/identity/gsi/web/images/onetap-ac-marked.png" data-modal-dialog-id="onetap-ac-marked" alt="Multiple-session user without FedCM"> <devsite-lightbox id="onetap-ac-marked"> <img src="/static/identity/gsi/web/images/onetap-ac-marked.png"> </devsite-lightbox> </td> </tr> </table> <h2 id="before_you_begin" data-text="Before you begin" tabindex="-1">Before you begin</h2> <p>Check that your browser settings and version <a href="/identity/gsi/web/guides/supported-browsers">supports</a> the FedCM API, updating to the latest version is recommended.</p> <ul> <li><p>FedCM API is available in Chrome 117 or later.</p></li> <li><p>The <a href="https://support.google.com/chrome/answer/14264742">Third-party sign-in</a> setting is enabled in Chrome.</p></li> <li><p>If your Chrome browser version is 119 or earlier, open <code translate="no" dir="ltr">chrome://flags</code> and enable the experimental <code translate="no" dir="ltr">FedCmWithoutThirdPartyCookies</code> feature. This step isn't needed with Chrome browser version 120 or later.</p></li> </ul> <h2 id="migrate_your_web_app" data-text="Migrate your web app" tabindex="-1">Migrate your web app</h2> <p>Follow these steps to enable FedCM, evaluate potential migration impact, and if needed to make changes to your existing web application:</p> <h4 id="fedcm_flag" data-text="1. Add a boolean flag to enable FedCM when initializing using:" tabindex="-1">1. <strong>Add</strong> a boolean flag to enable FedCM when initializing using:</h4> <ul> <li><p>HTML, set the <a href="/identity/gsi/web/reference/html-reference#data-use_fedcm_for_prompt"><code translate="no" dir="ltr">data-use_fedcm_for_prompt</code></a> attribute to <code translate="no" dir="ltr">true</code>.</p></li> <li><p>JavaScript, set <a href="/identity/gsi/web/reference/js-reference#use_fedcm_for_prompt"><code translate="no" dir="ltr">use_fedcm_for_prompt</code></a> to <code translate="no" dir="ltr">true</code> in the <a href="/identity/gsi/web/reference/js-reference#IdConfiguration"><code translate="no" dir="ltr">IdConfiguration</code></a> object.</p></li> </ul> <h4 id="display_moment" data-text="2. Remove use of isDisplayMoment(), isDisplayed(), isNotDisplayed(), and getNotDisplayedReason() methods in your code." tabindex="-1">2. <strong>Remove</strong> use of <code translate="no" dir="ltr">isDisplayMoment()</code>, <code translate="no" dir="ltr">isDisplayed()</code>, <code translate="no" dir="ltr">isNotDisplayed()</code>, and <code translate="no" dir="ltr">getNotDisplayedReason()</code> methods in your code.</h4> <p>To improve user privacy, the <a href="/identity/gsi/web/reference/js-reference#google.accounts.id.prompt"><code translate="no" dir="ltr">google.accounts.id.prompt</code></a> callback no longer returns any display moment notification in the <a href="/identity/gsi/web/reference/js-reference#PromptMomentNotification"><code translate="no" dir="ltr">PromptMomentNotication</code></a> object. Remove any code that depends on the display moment related methods. They are <code translate="no" dir="ltr">isDisplayMoment()</code>, <code translate="no" dir="ltr">isDisplayed()</code>, <code translate="no" dir="ltr">isNotDisplayed()</code>, and <code translate="no" dir="ltr">getNotDisplayedReason()</code> methods.</p> <h4 id="skipped_moment" data-text="3. Remove use of getSkippedReason() method in your code." tabindex="-1">3. <strong>Remove</strong> use of <code translate="no" dir="ltr">getSkippedReason()</code> method in your code.</h4> <p>While the skip moment, <code translate="no" dir="ltr">isSkippedMoment()</code>, would still be called from the <a href="/identity/gsi/web/reference/js-reference#google.accounts.id.prompt"><code translate="no" dir="ltr">google.accounts.id.prompt</code></a> callback in the <a href="/identity/gsi/web/reference/js-reference#PromptMomentNotification"><code translate="no" dir="ltr">PromptMomentNotication</code></a> object, detailed reason wouldn't be provided. Remove any code that depends on the <code translate="no" dir="ltr">getSkippedReason()</code> method from your code.</p> <p>Note that the dismissed moment notification, <code translate="no" dir="ltr">isDismissedMoment()</code>, and the related detailed reason method, <code translate="no" dir="ltr">getDismissedReason()</code>, are unchanged when FedCM is enabled.</p> <h4 id="position" data-text="4. Remove position style attributes from data-prompt_parent_id and intermediate_iframes." tabindex="-1">4. <strong>Remove</strong> <code translate="no" dir="ltr">position</code> style attributes from <a href="/identity/gsi/web/reference/js-reference#prompt_parent_id"><code translate="no" dir="ltr">data-prompt_parent_id</code></a> and <a href="/identity/gsi/web/amp/intermediate-support-reference"><code translate="no" dir="ltr">intermediate_iframes</code></a>.</h4> <p>The browser controls the size and position of user prompts, custom positions for One Tap on Desktop are not supported.</p> <h4 id="layout" data-text="5. Update page layout if needed." tabindex="-1">5. <strong>Update</strong> page layout if needed.</h4> <p>The browser controls the size and position of user prompts. Depending upon the layout of individual pages, some content might be overlaid as custom positions for One Tap on Desktop are not supported in any way such as <a href="/identity/gsi/web/guides/change-position">style attribute</a>, <a href="/identity/gsi/web/reference/js-reference#prompt_parent_id"><code translate="no" dir="ltr">data-prompt_parent_id</code></a>, <a href="/identity/gsi/web/amp/intermediate-support-reference"><code translate="no" dir="ltr">intermediate_iframes</code></a>, customized iframe, and other creative ways.</p> <p>Change page layout to improve the user experience when important information is obscured. Don't build your UX around the One Tap prompt even if you assume it is in the default position. Because the FedCM API is browser-mediated, different browser vendors may place the position of the prompt slightly differently.</p> <h4 id="cross_origin" data-text='6. Add allow="identity-credentials-get" attribute to parent frame if your web app calls One Tap API from cross-origin iframes.' tabindex="-1">6. <strong>Add</strong> <code translate="no" dir="ltr">allow="identity-credentials-get"</code> attribute to parent frame if your web app calls One Tap API from cross-origin iframes.</h4> <p>An iframe is considered as cross-origin if its <a href="https://web.dev/articles/same-site-same-origin" target="_blank" class="external">origin</a> is not exactly the same as the parent origin. For Example:</p> <ul> <li>Different domains: <code translate="no" dir="ltr">https://example1.com</code> and <code translate="no" dir="ltr">https://example2.com</code></li> <li>Different top-level domains: <code translate="no" dir="ltr">https://example.uk</code> and <code translate="no" dir="ltr">https://example.jp</code></li> <li><p>Subdomains: <code translate="no" dir="ltr">https://example.com</code> and <code translate="no" dir="ltr">https://login.example.com</code></p> <p>To improve user privacy, when One Tap API is called from cross-origin iframes, you must add <a href="https://developer.chrome.com/docs/privacy-sandbox/fedcm-developer-guide/#call-fedcm-from-within-a-cross-origin-iframe" target="_blank" class="external"><code translate="no" dir="ltr">allow="identity-credentials-get"</code></a> attribute in every parent frame <code translate="no" dir="ltr">iframe</code> tag:</p> <pre class="prettyprint lang-html" translate="no" dir="ltr"><code translate="no" dir="ltr"><iframe src="<var translate="no">https://your.cross-origin/onetap.page</var>" allow="identity-credentials-get"></iframe> </code></pre> <p>If your app utilizes an iframe that contains another iframe, you must ensure that the attribute is added to every iframe, including all sub-iframes.</p> <p>For example, consider the following scenario:</p></li> <li><p>The top document (<code translate="no" dir="ltr">https://www.example.uk</code>) contains an iframe named "Iframe A", which embeds a page (<code translate="no" dir="ltr">https://logins.example.com</code>).</p></li> <li><p>This embedded page (<code translate="no" dir="ltr">https://logins.example.com</code>) also contains an iframe named "Iframe B," which further embeds a page (<code translate="no" dir="ltr">https://onetap.example2.com</code>) that hosts One Tap.</p> <p>To ensure that One Tap can be displayed properly, the attribute must be added to both Iframe A and Iframe B tags.</p> <aside class="note"><strong>Note:</strong><span> The <a href="/identity/gsi/web/amp/nonamp-reference">Intermediate Iframe API</a> supports FedCM cross-origin iframes. No additional attribute is needed. However, if you embed a page using the <a href="/identity/gsi/web/amp/nonamp-reference">Intermediate Iframe API</a> within another iframe, you must add the <code translate="no" dir="ltr">allow="identity-credentials-get"</code> attribute to all parent iframes. <a href="#fedcm_flag">Enable FedCM</a> to test and ensure proper permission policy setup on all layers.</span></aside> <p><strong>Prepare</strong> for inquiries on the One Tap prompt not displayed. Other sites with different origins may embed your pages that host One Tap within their iframes. You may receive increased amount of support tickets related to One Tap not showing up from end-users or other site owners. While the updates can only be made by the site owners on their pages, you can do the following to mitigate the impact:</p></li> <li><p>Update your developer documentation to include how to set up the iframe properly to call your site. You can link to this page in your documentation.</p></li> <li><p>Update your developer FAQs page if applicable.</p></li> <li><p>Let your support team know this upcoming change and prepare for the response to the inquiry ahead of time.</p></li> <li><p>Proactively contact impacted partners, customers, or site owners for a smooth FedCM transition.</p> <aside class="note"><strong>Note:</strong><span> On the affected page, you should see the error message in the Chrome browser Developer Tools console: <strong><code translate="no" dir="ltr">[GSI_LOGGER]: FedCM get() rejects with NotAllowedError: The 'identity-credentials-get' feature is not enabled in this document.</code></strong></span></aside></li> </ul> <h4 id="csp" data-text="7. Add these directives to your Content Security Policy (CSP)." tabindex="-1">7. <strong>Add</strong> these <a href="/identity/gsi/web/guides/get-google-api-clientid#content_security_policy">directives</a> to your Content Security Policy (CSP).</h4> <p>This step is optional as not all websites choose to define a CSP.</p> <ul> <li><p>If CSP is not used in your website, no changes are needed.</p></li> <li><p>If your CSP works for the current One Tap and you don't use <code translate="no" dir="ltr">connect-src</code>, <code translate="no" dir="ltr">frame-src</code>, <code translate="no" dir="ltr">script-src</code>, <code translate="no" dir="ltr">style-src</code>, or <code translate="no" dir="ltr">default-src</code> no changes are needed.</p></li> <li><p>Otherwise, follow this <a href="/identity/gsi/web/guides/get-google-api-clientid#content_security_policy">guide</a> to set up your CSP. Without proper CSP setup, the FedCM One Tap wouldn't be displayed on the site.</p> <aside class="note"><strong>Note:</strong><span> On the affected page, you should see the error message in the Chrome browser Developer Tools console: <strong><code translate="no" dir="ltr">[GSI_LOGGER]: FedCM get() rejects with NetworkError: Failed to execute 'get' on 'CredentialsContainer': Refused to connect to 'https://accounts.google.com/gsi/fedcm.json' because it violates the document's Content Security Policy.</code></strong></span></aside></li> </ul> <h4 id="amp" data-text="8. Remove Accelerated Mobile Pages (AMP) support for sign-in." tabindex="-1">8. <strong>Remove</strong> Accelerated Mobile Pages (AMP) support for sign-in.</h4> <p>User sign-in support for AMP is an optional feature of GIS your web app may have implemented. If this is the case,</p> <p><strong>Delete</strong> any references to the:</p> <ul> <li><p><a href="/identity/gsi/web/amp/amp-reference"><code translate="no" dir="ltr">amp-onetap-google</code></a> custom element, and</p></li> <li><pre class="prettyprint lang-javascript" translate="no" dir="ltr"><code translate="no" dir="ltr"><script async custom-element="amp-onetap-google" src="https://cdn.ampproject.org/v0/amp-onetap-google-0.1.js"></script> </code></pre> <p>Consider redirecting sign-in requests from AMP to your website's HTML sign-in flow. Note that the related <a href="/identity/gsi/web/amp/intermediate-support-reference"><code translate="no" dir="ltr">Intermediate Iframe Support API</code></a> is unaffected.</p></li> </ul> <h2 id="test_and_verify_your_migration" data-text="Test and verify your migration" tabindex="-1">Test and verify your migration</h2> <p>After making necessary changes based on the preceding steps, you can verify the migration is successful.</p> <ol> <li><p>Confirm your browser <a href="/identity/gsi/web/guides/supported-browsers">supports</a> FedCM and you have an existing Google Account session.</p></li> <li><p>Navigate to the One Tap page(s) in your application.</p></li> <li><p>Confirm that the One Tap prompt is displayed and safely overlays underlying content.</p></li> <li><p>Confirm a correct credential returns to your endpoint or callback method when signing in your application using One Tap.</p></li> <li><p>If automatic sign in is enabled, verify that cancelling works and correct correct credential returns to your endpoint or callback method.</p></li> </ol> <h4 id="one_tap_cooldown_period" data-text="One Tap cooldown period" tabindex="-1">One Tap cooldown period</h4> <p>Clicking One Tap <span class="material-icons" aria-hidden="true" translate="no">close</span> on the top-right corner closes the prompt and enters the cooldown period which suppresses the One Tap prompt from displaying temporarily. In Chrome, if you want to have One Tap prompt shown again before the cooldown period ends, you can reset the cooldown status by clicking the lock icon in the address bar and clicking the <em>Reset Permission</em> button.</p> <h4 id="automatic_sign_in_quiet_period" data-text="Automatic sign in quiet period" tabindex="-1">Automatic sign in quiet period</h4> <p>When testing <a href="/identity/gsi/web/guides/automatic-sign-in-sign-out">automatic sign in</a> One Tap using FedCM, it has a 10 minute quiet period between every automatic sign-in attempt. The quiet period can't be reset. You would have to wait for 10 minutes or use different Google Account for testing in order to trigger automatic sign in again.</p> <h3 id="helpful_resources" data-text="Helpful resources" tabindex="-1">Helpful resources</h3> <p>The <a href="https://developers.google.com/privacy-sandbox/blog/psat-announcement">Privacy Sandbox Analysis Tool</a> (PSAT) is a Chrome DevTools extension to assist with the adoption of alternative APIs such as FedCM. It works by scanning your site for affected features and provides a list of recommended changes.</p> </div> <devsite-recommendations display="in-page" hidden yield> </devsite-recommendations> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-feedback position="footer" project-name="Authentication" product-id="5186570" bucket="Identity guides" context="External devsite feedback" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="footer" class="nocontent" project-icon="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/touchicon-180-new.png" > <button> Send feedback </button> </devsite-feedback> <devsite-recommendations id="recommendations-link" yield></devsite-recommendations> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2024-10-31 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-feedback"> <devsite-feedback position="thumb-rating" project-name="Authentication" product-id="5186570" bucket="Identity guides" context="External devsite feedback" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="thumb-rating" class="nocontent" project-icon="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/touchicon-180-new.png" > <button> Need to tell us more? </button> </devsite-feedback> </template> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-10-31 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> <nav class="devsite-footer-promos nocontent" aria-label="Promotions"> <ul class="devsite-footer-promos-list"> <li class="devsite-footer-promo"> <a href="//github.com/googlesamples/google-services" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Promo Link (index 1)" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/logo-github.svg" loading="lazy" alt="GitHub"> </picture> <span class="devsite-footer-promo-label"> GitHub </span> </a> <div class="devsite-footer-promo-description">Fork our samples and try them yourself</div> </li> <li class="devsite-footer-promo"> <a href="//stackoverflow.com/questions/tagged/google-signin" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Promo Link (index 2)" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/logo-stack-overflow.svg" loading="lazy" alt="Stack Overflow"> </picture> <span class="devsite-footer-promo-label"> Stack Overflow </span> </a> <div class="devsite-footer-promo-description">Ask a question under the google-signin tag</div> </li> <li class="devsite-footer-promo"> <a href="//googledevelopers.blogspot.com/search/label/sign-in" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Promo Link (index 3)" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/developers_64dp.png" loading="lazy" alt="Blog"> </picture> <span class="devsite-footer-promo-label"> Blog </span> </a> <div class="devsite-footer-promo-description">The latest news on the Google Developers blog</div> </li> <li class="devsite-footer-promo"> <a href="https://blog.chromium.org" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Promo Link (index 4)" > <picture> <img class="devsite-footer-promo-icon" src="https://www.gstatic.com/images/icons/material/product/2x/chrome_chromium_64dp.png" loading="lazy" alt="Chromium Blog"> </picture> <span class="devsite-footer-promo-label"> Chromium Blog </span> </a> <div class="devsite-footer-promo-description">The latest news on the Chromium blog.</div> </li> </ul> </nav> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Product Info</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/terms" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Terms of Service </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/identity/branding-guidelines" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Branding Guidelines </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Help</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//stackoverflow.com/questions/tagged/google-signin" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Sign In With Google </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//stackoverflow.com/questions/tagged/google-identity" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Google Identity </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Developer consoles</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//console.developers.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Google API Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//console.cloud.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Google Cloud Platform Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//play.google.com/apps/publish" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Google Play Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//console.firebase.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Firebase Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//console.actions.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Actions on Google Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//cast.google.com/publish" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" > Cast SDK Developer Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//chrome.google.com/webstore/developer/dashboard" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" > Chrome Web Store Dashboard </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//console.home.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 8)" > Google Home Developer Console </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-sites" aria-label="Other Google Developers websites"> <a href="https://developers.google.com/" class="devsite-footer-sites-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Developers Link"> <picture> <img class="devsite-footer-sites-logo" src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/lockup-google-for-developers.svg" loading="lazy" alt="Google Developers"> </picture> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//developer.android.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Android Link" > Android </a> </li> <li class="devsite-footer-sites-item"> <a href="//developer.chrome.com/home" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Chrome Link" > Chrome </a> </li> <li class="devsite-footer-sites-item"> <a href="//firebase.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Firebase Link" > Firebase </a> </li> <li class="devsite-footer-sites-item"> <a href="//cloud.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud Platform Link" > Google Cloud Platform </a> </li> <li class="devsite-footer-sites-item"> <a href="//ai.google.dev/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google AI Link" > Google AI </a> </li> <li class="devsite-footer-sites-item"> <a href="/products" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer All products Link" > All products </a> </li> </ul> </nav> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/terms/site-terms" data-category="Site-Wide Custom Events" data-label="Footer Terms link" > Terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" > Privacy </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" aria-hidden="true" > Manage cookies </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Sign up for the Google for Developers newsletter</span> <a class="devsite-footer-utility-link gc-analytics-event" href="/newsletter/subscribe" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link" > Subscribe </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> <devsite-concierge data-info-panel data-ai-panel data-api-explorer-panel > </devsite-concierge> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[{"dimensions": {"dimension1": "Signed out", "dimension11": false, "dimension5": "en", "dimension6": "en", "dimension3": false, "dimension4": "Authentication"}, "gaid": "UA-24532603-1", "metrics": {"ratings_count": "metric2", "ratings_value": "metric1"}, "purpose": 1}]</script> <script type="application/json" tag-management>{"at": "True", "ga4": [{"id": "G-272J68FCRF", "purpose": 1}], "ga4p": [{"id": "G-272J68FCRF", "purpose": 1}], "gtm": [], "parameters": {"internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "article", "projectName": "Authentication", "signedIn": "False", "tenant": "developers", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}, "experiment": {"ids": ""}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="m1Y4+3pP3QrLxRFIuZiM/RLQzqI0Cy"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/js/app_loader.js', '[1,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers","https://developers-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/developers/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/favicon-new.png","https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,116,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","developers.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["DevPro__enable_cloud_innovators_plus","Search__enable_ai_search_summaries_restricted","MiscFeatureFlags__enable_explain_this_code","Profiles__enable_public_developer_profiles","Analytics__enable_clearcut_logging","Search__enable_page_map","Profiles__enable_release_notes_notifications","Profiles__enable_completecodelab_endpoint","Profiles__enable_complete_playlist_endpoint","TpcFeatures__enable_mirror_tenant_redirects","MiscFeatureFlags__enable_firebase_utm","MiscFeatureFlags__enable_project_variables","Concierge__enable_pushui","MiscFeatureFlags__enable_view_transitions","Profiles__enable_page_saving","Profiles__require_profile_eligibility_for_signin","MiscFeatureFlags__developers_footer_image","Profiles__enable_profile_collections","MiscFeatureFlags__enable_variable_operator","Cloud__enable_llm_concierge_chat","Search__enable_dynamic_content_confidential_banner","Cloud__enable_cloud_facet_chat","CloudShell__cloud_shell_button","EngEduTelemetry__enable_engedu_telemetry","Search__enable_ai_search_summaries","Significatio__enable_by_tenant","Experiments__reqs_query_experiments","Search__enable_suggestions_from_borg","Profiles__enable_developer_profiles_callout","Cloud__enable_legacy_calculator_redirect","DevPro__enable_developer_subscriptions","CloudShell__cloud_code_overflow_menu","Cloud__enable_cloudx_experiment_ids","Search__enable_ai_eligibility_checks","MiscFeatureFlags__emergency_css","MiscFeatureFlags__developers_footer_dark_image","Cloud__enable_cloud_dlp_service","Concierge__enable_concierge_restricted","Cloud__enable_cloudx_ping","BookNav__enable_tenant_cache_key","TpcFeatures__enable_required_headers","Concierge__enable_concierge","Cloud__enable_cloud_shell_fte_user_flow","Profiles__enable_dashboard_curated_recommendations","Cloud__enable_cloud_shell","Profiles__enable_awarding_url","Cloud__enable_free_trial_server_call","Profiles__enable_recognition_badges"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.clients6.google.com",1,4,null,"https://developerprofiles-pa.clients6.google.com",[1,"developers","Google for Developers","developers.google.com",null,"developers-dot-devsite-v2-prod.appspot.com",null,null,[1,1,[1],null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],[1,null,null,[1,20],"/recommendations/information"],null,null,null,[1,1,1],[1,1,null,1,1]],null,[null,null,null,null,null,null,"/images/lockup-new.svg","/images/touchicon-180-new.png",null,null,null,null,1,null,null,null,null,null,null,null,null,1,null,null,null,"/images/lockup-dark-theme-new.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,14,15,20,22,23,29,32,36],null,[[null,null,null,[3,7,10,2,39,17,4,32,24,11,12,13,34,15,25],null,null,[1,[["docType","Choose a content type",[["Tutorial",null,null,null,null,null,null,null,null,"Tutorial"],["Guide",null,null,null,null,null,null,null,null,"Guide"],["Sample",null,null,null,null,null,null,null,null,"Sample"]]],["product","Choose a product",[["Android",null,null,null,null,null,null,null,null,"Android"],["ARCore",null,null,null,null,null,null,null,null,"ARCore"],["ChromeOS",null,null,null,null,null,null,null,null,"ChromeOS"],["Firebase",null,null,null,null,null,null,null,null,"Firebase"],["Flutter",null,null,null,null,null,null,null,null,"Flutter"],["Assistant",null,null,null,null,null,null,null,null,"Google Assistant"],["GoogleCloud",null,null,null,null,null,null,null,null,"Google Cloud"],["GoogleMapsPlatform",null,null,null,null,null,null,null,null,"Google Maps Platform"],["GooglePay",null,null,null,null,null,null,null,null,"Google Pay & Google Wallet"],["GooglePlay",null,null,null,null,null,null,null,null,"Google Play"],["Tensorflow",null,null,null,null,null,null,null,null,"TensorFlow"]]],["category","Choose a topic",[["AiAndMachineLearning",null,null,null,null,null,null,null,null,"AI and Machine Learning"],["Data",null,null,null,null,null,null,null,null,"Data"],["Enterprise",null,null,null,null,null,null,null,null,"Enterprise"],["Gaming",null,null,null,null,null,null,null,null,"Gaming"],["Mobile",null,null,null,null,null,null,null,null,"Mobile"],["Web",null,null,null,null,null,null,null,null,"Web"]]]]]],[1,1],null,1],[[["UA-24532603-1"],["UA-22084204-5"],null,null,["UA-24532603-5"],null,null,[["G-272J68FCRF"],null,null,[["G-272J68FCRF",2]]],[["UA-24532603-1",2]],null,[["UA-24532603-5",2]],null,1],[[13,10],[6,5],[5,4],[14,11],[15,12],[1,1],[4,3],[11,8],[16,13],[12,9],[3,2]],[[1,1],[2,2]]],null,4,null,null,null,null,null,null,null,null,null,null,null,null,null,"developers.devsite.google"],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m"]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>