このリファレンス ページでは、Sign-In JavaScript API について説明します。この API を使用すると、ワンタップ プロンプトまたは「Google でログイン」ボタンをウェブページに表示できます。
メソッド: google.accounts.id.initialize
google.accounts.id.initialize
メソッドは、構成オブジェクトに基づいて「Google でログイン」クライアントを初期化します。このメソッドの次のコードサンプルをご覧ください。
google.accounts.id.initialize(IdConfiguration)
次のコードサンプルでは、onload
関数を使用して google.accounts.id.initialize
メソッドを実装しています。
<script>
window.onload = function () {
google.accounts.id.initialize({
client_id: 'YOUR_GOOGLE_CLIENT_ID',
callback: handleCredentialResponse
});
google.accounts.id.prompt();
};
</script>
google.accounts.id.initialize
メソッドは、「Google でログイン」クライアント インスタンスを作成します。このインスタンスは、同じウェブページ内のすべてのモジュールで暗黙的に使用できます。
- 同じウェブページで複数のモジュール(ワンタップ、カスタマイズされたボタン、取り消しなど)を使用する場合でも、
google.accounts.id.initialize
メソッドを 1 回だけ呼び出す必要があります。 google.accounts.id.initialize
メソッドを複数回呼び出した場合は、最後の呼び出しの構成のみが記憶され、使用されます。
実際には、google.accounts.id.initialize
メソッドを呼び出すたびに構成がリセットされ、同じウェブページ内の後続のメソッドはすべて、すぐに新しい構成を使用します。
データ型: IdConfiguration
IdConfiguration
データ型のフィールドと説明を次の表に示します。
項目 | |
---|---|
client_id |
アプリケーションのクライアント ID |
auto_select |
自動選択を有効にします。 |
callback |
ID トークンを処理する JavaScript 関数。この属性は、Google One タップと「Google でログイン」ボタン popup UX モードで使用します。 |
login_uri |
ログイン エンドポイントの URL。「Google でログイン」ボタン redirect UX モードでこの属性を使用します。 |
native_callback |
パスワードの認証情報を処理する JavaScript 関数。 |
cancel_on_tap_outside |
ユーザーがプロンプトの外側をクリックすると、プロンプトをキャンセルします。 |
prompt_parent_id |
ワンタップ プロンプトのコンテナ要素の DOM ID |
nonce |
ID トークンのランダムな文字列 |
context |
ワンタップ プロンプトのタイトルと語句 |
state_cookie_domain |
親ドメインとそのサブドメインでワンタップを呼び出す必要がある場合は、親ドメインをこのフィールドに渡して、単一の共有 Cookie が使用されるようにします。 |
ux_mode |
「Google でログイン」ボタンの UX フロー |
allowed_parent_origin |
中間 iframe の埋め込みを許可するオリジン。このフィールドが存在する場合、ワンタップは中間 iframe モードで実行されます。 |
intermediate_iframe_close_callback |
ユーザーが手動でワンタップを閉じたときに、デフォルトの中間 iframe の動作をオーバーライドします。 |
itp_support |
ITP ブラウザでアップグレードされたワンタップ UX を有効にします。 |
login_hint |
ユーザーにヒントを提供して、アカウントの選択をスキップします。 |
hd |
アカウントの選択をドメインごとに制限します。 |
use_fedcm_for_prompt |
ブラウザでユーザーのログイン プロンプトを制御し、ウェブサイトと Google 間のログインフローを仲介できるようにします。 |
client_id
このフィールドはアプリケーションのクライアント ID です。クライアント ID は、Google Cloud コンソールで確認および作成されます。詳しくは、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
string | ○ | client_id: "CLIENT_ID.apps.googleusercontent.com" |
自動選択
このフィールドは、以前にアプリを承認した Google セッションが 1 つしかない場合に、ユーザー操作なしで ID トークンを自動的に返すかどうかを決定します。デフォルト値は false
です。詳しくは、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
ブール値 | 任意 | auto_select: true |
callback
このフィールドは、ワンタップ プロンプトまたはポップアップ ウィンドウから返された ID トークンを処理する JavaScript 関数です。Google One Tap または「Google でログイン」ボタン popup
UX モードが使用されている場合、この属性は必須です。詳しくは、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
function | ワンタップと popup UX モードに必須 |
callback: handleResponse |
login_uri
この属性は、ログイン エンドポイントの URI です。
この値は、OAuth 2.0 クライアントで承認済みのリダイレクト URI のいずれかと完全に一致している必要があります。これは API Console で構成し、リダイレクト URI の検証ルールに準拠している必要があります。
現在のページがログインページの場合は、この属性を省略できます。その場合、認証情報はデフォルトでこのページに投稿されます。
ユーザーが [Google でログイン] ボタンをクリックしてリダイレクト UX モードを使用すると、ID トークンの認証情報のレスポンスがログイン エンドポイントに送信されます。
詳しくは、次の表をご覧ください。
タイプ | 任意 | 例 |
---|---|---|
URL | デフォルトは、現在のページの URI または指定した値になります。ux_mode: "redirect" が設定されている場合にのみ使用されます。 |
login_uri="https://www.example.com/login" |
ログイン エンドポイントは、本文に ID トークン値を持つ credential
キーを含む POST リクエストを処理する必要があります。
ログイン エンドポイントへのリクエスト例を次に示します。
POST /login HTTP/1.1
Host: www.example.com
Content-Type: application/x-www-form-urlencoded
credential=ID_TOKEN
「native_callback」
このフィールドは、ブラウザのネイティブ認証情報マネージャーから返されたパスワード認証情報を処理する JavaScript 関数の名前です。詳しくは、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
function | 任意 | native_callback: handleResponse |
#cancel_on_tap_outside
このフィールドは、ユーザーがプロンプトの外側をクリックした場合にワンタップ リクエストをキャンセルするかどうかを設定します。デフォルト値は true
です。値を false
に設定すると、無効にできます。詳しくは、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
ブール値 | 任意 | cancel_on_tap_outside: false |
prompt_parent_id(親 ID プロンプト)
コンテナ要素の DOM ID を設定します。設定されていない場合、ウィンドウの右上にワンタップ プロンプトが表示されます。詳しくは、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
string | 任意 | prompt_parent_id: 'parent_id' |
nonce
このフィールドは、リプレイ攻撃を防ぐために ID トークンで使用されるランダムな文字列です。詳しくは、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
string | 任意 | nonce: "biaqbm70g23" |
ノンスの長さは、環境でサポートされている JWT の最大サイズと、個々のブラウザとサーバーの HTTP サイズ制約に制限されています。
コンテキスト
このフィールドでは、ワンタップ プロンプトのタイトルのテキストとメッセージを変更します。詳しくは、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
string | 任意 | context: "use" |
次の表に、使用可能なコンテキストとその説明を示します。
コンテキスト | |
---|---|
signin |
「Google でログイン」 |
signup |
「Google で登録」 |
use |
「Google で使用」 |
state_cookie_domain
親ドメインとそのサブドメインでワンタップを表示する必要がある場合は、親ドメインをこのフィールドに渡して、単一の共有状態 Cookie が使用されるようにします。詳しくは、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
string | 任意 | state_cookie_domain: "example.com" |
UX モード
このフィールドを使用して、「Google でログイン」ボタンで使用される UX フローを設定します。デフォルト値は popup
です。この属性は OneTap の UX には影響しません。詳しくは、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
string | 任意 | ux_mode: "redirect" |
次の表に、使用可能な UX モードとその説明を示します。
UX モード | |
---|---|
popup |
ポップアップ ウィンドウでログイン UX フローを実行します。 |
redirect |
ページ全体のリダイレクトでログイン UX フローを実行します。 |
allowed_parent_origin
中間 iframe の埋め込みを許可するオリジン。このフィールドが存在する場合、ワンタップは中間 iframe モードで実行されます。詳細については、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
文字列または文字列配列 | 任意 | allowed_parent_origin: "https://example.com" |
次の表に、サポートされている値の型とその説明を示します。
値の型 | ||
---|---|---|
string |
単一のドメイン URI。 | "https://example.com" |
string array |
ドメイン URI の配列。 | ["https://news.example.com", "https://local.example.com"] |
ワイルドカードの接頭辞もサポートされています。たとえば、"https://*.example.com"
は、すべてのレベル(news.example.com
、login.news.example.com
など)で example.com
とそのサブドメインに一致します。ワイルドカードを使用するときは、次の点に注意してください。
- パターン文字列をワイルドカードとトップレベル ドメインだけで構成することはできません。たとえば、
https://*.com
とhttps://*.co.uk
は無効です。上記のとおり、"https://*.example.com"
はexample.com
とそのサブドメインに一致します。配列を使用して 2 つの異なるドメインを表すこともできます。たとえば、["https://example1.com", "https://*.example2.com"]
は、ドメインexample1.com
、example2.com
、およびexample2.com
のサブドメインに一致します。 - ワイルドカード ドメインは安全な https:// スキームで始まる必要があるため、
"*.example.com"
は無効とみなされます。
allowed_parent_origin
フィールドの値が無効な場合、中間 iframe モードのワンタップ初期化は失敗し、停止します。
inter_iframe_close_callback
ユーザーがワンタップ UI で [X] ボタンをタップして手動でワンタップを閉じると、デフォルトの中間 iframe の動作をオーバーライドします。デフォルトの動作では、DOM から中間 iframe が直ちに削除されます。
intermediate_iframe_close_callback
フィールドは中間 iframe モードでのみ有効になります。また、これはワンタップ iframe ではなく、中間 iframe にのみ影響します。ワンタップ UI は、コールバックが呼び出される前に削除されます。
タイプ | 必須 | 例 |
---|---|---|
function | 任意 | intermediate_iframe_close_callback: logBeforeClose |
itp_support
このフィールドでは、インテリジェント トラッキング防止機能(ITP)をサポートするブラウザで、
アップグレードされたワンタップ UX を有効にするかどうかを決定します。デフォルト値は false
です。詳しくは、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
ブール値 | 任意 | itp_support: true |
login_hint(ログインのヒント)
アプリでログインするユーザーを事前に把握している場合、Google にログインのヒントを提供できます。成功すると、アカウントの選択はスキップされます。指定できる値は、メールアドレスまたは ID トークンの sub フィールド値です。
詳細については、OpenID Connect ドキュメントの login_hint フィールドをご覧ください。
タイプ | 必須 | 例 |
---|---|---|
文字列、メールアドレス、または ID トークンの sub フィールドの値。 |
任意 | login_hint: 'elisa.beckett@gmail.com' |
HD
ユーザーが複数のアカウントを持っており、Workspace アカウントでのみログインする必要がある場合は、これを使用してドメイン名のヒントを Google に提供します。成功すると、アカウントの選択中に表示されるユーザー アカウントは、指定したドメインに限定されます。ワイルドカード値: *
は、ユーザーに Workspace アカウントのみを提供し、アカウントの選択時に一般ユーザー向けアカウント(user@gmail.com)は除外します。
詳細については、OpenID Connect ドキュメントの hd フィールドをご覧ください。
タイプ | 必須 | 例 |
---|---|---|
文字列。完全修飾ドメイン名または *。 | 任意 | hd: '*' |
#use_fedcm_for_prompt
ブラウザでユーザーのログイン プロンプトを制御し、ウェブサイトと Google の間のログインフローを仲介できるようにします。デフォルトは false です。
タイプ | 必須 | 例 |
---|---|---|
ブール値 | 任意 | use_fedcm_for_prompt: true |
メソッド: google.accounts.id.prompt
google.accounts.id.prompt
メソッドは、initialize()
メソッドが呼び出されると、ワンタップ プロンプトまたはブラウザのネイティブ認証情報マネージャーを表示します。このメソッドの次のコードサンプルをご覧ください。
google.accounts.id.prompt(/**
@type{(function(!PromptMomentNotification):void)=} */ momentListener)
通常、prompt()
メソッドはページの読み込み時に呼び出されます。Google 側のセッション ステータスとユーザー設定が原因で、ワンタップ プロンプト UI が表示されない場合があります。さまざまな瞬間の UI ステータスに関する通知を受け取るには、UI ステータス通知を受け取る関数を渡します。
通知は次のタイミングで発生します。
- 表示タイミング:
prompt()
メソッドが呼び出された後に行われます。通知には、UI が表示されるかどうかを示すブール値が含まれています。 スキップされた瞬間: これは、自動キャンセルまたは手動キャンセルによってワンタップ プロンプトが閉じられたとき、または Google が認証情報を発行できない場合(選択したセッションが Google からログアウトしている場合など)に発生します。
このような場合、次の ID プロバイダがあれば、続行することをおすすめします。
終了時: Google が認証情報を正常に取得した場合、またはユーザーが認証情報取得フローの停止を希望する場合に発生します。たとえば、ユーザーがログイン ダイアログでユーザー名とパスワードの入力を開始したら、
google.accounts.id.cancel()
メソッドを呼び出してワンタップ プロンプトを閉じ、閉じた瞬間をトリガーできます。
次のコードサンプルでは、スキップされた瞬間を実装します。
<script>
window.onload = function () {
google.accounts.id.initialize(...);
google.accounts.id.prompt((notification) => {
if (notification.isNotDisplayed() || notification.isSkippedMoment()) {
// continue with another identity provider.
}
});
};
</script>
データ型: PromptMomentNotification
次の表に、PromptMomentNotification
データ型のメソッドと説明を示します。
メソッド | |
---|---|
isDisplayMoment() |
これは表示中の通知ですか? |
isDisplayed() |
この通知はしばらくの間表示され、UI は表示されていますか? |
isNotDisplayed() |
この通知はしばらくの間表示され、UI は表示されませんか? |
getNotDisplayedReason() |
UI が表示されない詳細な理由。有効な値は次のとおりです。
|
isSkippedMoment() |
この通知はスキップされた瞬間に関するものですか? |
getSkippedReason() |
スキップされた時点の詳細な理由。有効な値は次のとおりです。
|
isDismissedMoment() |
この通知は閉じた期間の通知ですか? |
getDismissedReason() |
拒否の詳しい理由。有効な値は次のとおりです。
|
getMomentType() |
モーメント タイプの文字列を返します。有効な値は次のとおりです。
|
データ型: CredentialResponse
callback
関数が呼び出されると、CredentialResponse
オブジェクトがパラメータとして渡されます。次の表に、認証情報レスポンス オブジェクトに含まれるフィールドを示します。
項目 | |
---|---|
credential |
このフィールドは、返される ID トークンです。 |
select_by |
このフィールドは、認証情報の選択方法を設定します。 |
証明書
このフィールドは、Base64 でエンコードされた JSON Web Token(JWT)文字列としての ID トークンです。
デコードすると、JWT は次の例のようになります。
header { "alg": "RS256", "kid": "f05415b13acb9590f70df862765c655f5a7a019e", // JWT signature "typ": "JWT" } payload { "iss": "https://accounts.google.com", // The JWT's issuer "nbf": 161803398874, "aud": "314159265-pi.apps.googleusercontent.com", // Your server's client ID "sub": "3141592653589793238", // The unique ID of the user's Google Account "hd": "gmail.com", // If present, the host domain of the user's GSuite email address "email": "elisa.g.beckett@gmail.com", // The user's email address "email_verified": true, // true, if Google has verified the email address "azp": "314159265-pi.apps.googleusercontent.com", "name": "Elisa Beckett", // If present, a URL to user's profile picture "picture": "https://lh3.googleusercontent.com/a-/e2718281828459045235360uler", "given_name": "Elisa", "family_name": "Beckett", "iat": 1596474000, // Unix timestamp of the assertion's creation time "exp": 1596477600, // Unix timestamp of the assertion's expiration time "jti": "abc161803398874def" }
sub
フィールドには、Google アカウントのグローバルに一意の識別子が含まれます。
email
、email_verified
、hd
フィールドを使用して、Google がメールアドレスをホストしていて、そのメールアドレスの権限があるかどうかを判断できます。Google が信頼できる場合、ユーザーは正規のアカウント所有者であることが確認されます。
Google が信頼できるケース:
email
のサフィックスは@gmail.com
です。これは Gmail アカウントです。email_verified
が true で、hd
が設定されている場合、これは Google Workspace アカウントです。
ユーザーは Gmail や Google Workspace を使用せずに Google アカウントに登録できます。
email
に @gmail.com
サフィックスがなく、hd
がない場合、Google には権限がないため、ユーザーを確認するためにパスワードまたはその他の本人確認方法をおすすめします。email_verfied
も true です。これは、Google アカウントの作成時に Google が最初にユーザーを検証しましたが、サードパーティのメール アカウントの所有権は変更されている可能性があります。
exp
フィールドには、サーバー側でトークンを確認する有効期限が表示されます。「Google でログイン」から取得した ID トークンの場合は 1 時間です。有効期限が切れる前にトークンを検証する必要があります。セッション管理には exp
を使用しないでください。ID トークンが期限切れになっても、ユーザーがログアウトするわけではありません。アプリはユーザーのセッション管理を行います。
select_by
次の表に、select_by
フィールドに指定できる値を示します。値の設定には、セッションと同意ステータスとともに使用するボタンのタイプ、
ユーザーがワンタップまたは「Google でログイン」ボタンを押したか、タッチレスの自動ログイン プロセスを使用した。
既存のセッションが見つかったか、ユーザーが Google アカウントを選択してログインし、新しいセッションを確立した。
ID トークンの認証情報をアプリと共有する前に、ユーザーは以下のいずれかを行います。
- 認証情報の共有に同意するために [確認] ボタンを押した
- 同意を得ており、[アカウントを選択]を使って Google アカウントを選択しています
このフィールドの値は次のいずれかのタイプに設定されます。
値 | 説明 |
---|---|
auto |
以前に認証情報の共有に同意した既存のセッションへのユーザーの自動ログイン。 |
user |
以前に同意した既存のセッションがあるユーザーが、ワンタップの [Continue as] ボタンを押して認証情報を共有しました。 |
user_1tap |
既存のセッションがあるユーザーが、ワンタップの [ユーザー登録] ボタンを押して同意を付与し、認証情報を共有。Chrome v75 以降にのみ適用されます。 |
user_2tap |
既存のセッションがないユーザーが、ワンタップの [Continue as] ボタンを押してアカウントを選択し、ポップアップ ウィンドウの確認ボタンを押して同意を付与し、認証情報を共有します。Chromium ベースではないブラウザに適用されます。 |
btn |
以前に同意した既存のセッションがあるユーザーが [Google でログイン] ボタンを押し、[アカウントの選択] から Google アカウントを選択して認証情報を共有している。 |
btn_confirm |
既存のセッションがあるユーザーが [Google でログイン] ボタンを押し、確認ボタンを押して同意を付与し、認証情報を共有しました。 |
btn_add_session |
以前に同意を示した既存のセッションがないユーザーが、[Google でログイン] ボタンを押して Google アカウントを選択し、認証情報を共有しました。 |
btn_confirm_add_session |
既存のセッションがないユーザーが [Google でログイン] ボタンを押して Google アカウントを選択し、次に確認ボタンを押して認証情報の共有を行いました。 |
メソッド: google.accounts.id.renderButton
google.accounts.id.renderButton
メソッドは、ウェブページに [Google でログイン] ボタンをレンダリングします。
このメソッドの次のコードサンプルをご覧ください。
google.accounts.id.renderButton(
/** @type{!HTMLElement} */ parent,
/** @type{!GsiButtonConfiguration} */ options
)
データ型: GsiButtonConfiguration
GsiButtonConfiguration
データ型のフィールドと説明を次の表に示します。
属性 | |
---|---|
type |
ボタンのタイプ: アイコンまたは標準ボタン。 |
theme |
ボタンのテーマ。たとえば、filled_blue や filled_black を指定します。 |
size |
ボタンのサイズ。(S サイズまたは L サイズなど)。 |
text |
ボタンのテキスト。例: 「Google でログイン」や「Google で登録」。 |
shape |
ボタンの形状。(長方形や円形など)。 |
logo_alignment |
Google ロゴの配置: 左または中央。 |
width |
ボタンの幅(ピクセル単位)。 |
locale |
設定すると、ボタンの言語がレンダリングされます。 |
click_listener |
設定すると、この関数は「Google でログイン」ボタンがクリックされたときに呼び出されます。 |
属性タイプ
以降のセクションでは、各属性のタイプの詳細と例について説明します。
type
ボタンのタイプ。デフォルト値は standard
です。
詳しくは、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
string | ○ | type: "icon" |
次の表に、使用可能なボタンの種類とその説明を示します。
タイプ | |
---|---|
standard |
![]() ![]() |
icon |
![]() |
テーマ
ボタンのテーマ。デフォルト値は outline
です。詳細については、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
string | 任意 | theme: "filled_blue" |
次の表に、使用可能なテーマとその説明を示します。
テーマ | |
---|---|
outline |
![]() ![]() ![]() |
filled_blue |
![]() ![]() ![]() |
filled_black |
![]() ![]() ![]() |
size
ボタンのサイズ。デフォルト値は large
です。詳細については、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
string | 任意 | size: "small" |
次の表に、使用可能なボタンのサイズとその説明を示します。
サイズ | |
---|---|
large |
![]() ![]() ![]() |
medium |
![]() ![]() |
small |
![]() ![]() |
テキスト
ボタンのテキスト。デフォルト値は signin_with
です。text
属性が異なるアイコンボタンのテキストに見た目の違いはありません。唯一の例外は、画面へのアクセスのためにテキストが読み上げられる場合です。
詳しくは、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
string | 任意 | text: "signup_with" |
次の表に、使用可能なボタンテキストとその説明を示します。
テキスト | |
---|---|
signin_with |
![]() ![]() |
signup_with |
![]() ![]() |
continue_with |
![]() ![]() |
signin |
![]() ![]() |
シェイプ
ボタンの形状。デフォルト値は rectangular
です。詳しくは、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
string | 任意 | shape: "rectangular" |
次の表に、使用可能なボタンの形状とその説明を示します。
形 | |
---|---|
rectangular |
![]() ![]() ![]() icon ボタンタイプに使用する場合は、square と同じになります。 |
pill |
![]() ![]() ![]() icon ボタンタイプに使用する場合は、circle と同じになります。 |
circle |
![]() ![]() ![]() standard ボタンタイプに使用する場合は、pill と同じになります。 |
square |
![]() ![]() ![]() standard ボタンタイプに使用する場合は、rectangular と同じになります。 |
ロゴの配置
Google ロゴの配置。デフォルト値は left
です。この属性は standard
ボタンタイプにのみ適用されます。詳しくは、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
string | 任意 | logo_alignment: "center" |
次の表に、使用可能なアライメントとその説明を示します。
ロゴの配置 | |
---|---|
left |
![]() |
center |
![]() |
width
ボタンの最小幅(ピクセル単位)。最大幅は 400 ピクセルです。
詳しくは、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
string | 任意 | width: "400" |
locale
(省略可)指定した言語 / 地域を使用してボタンテキストを表示します。指定しなかった場合、デフォルトでユーザーの Google アカウントまたはブラウザの設定になります。ライブラリを読み込むときに、hl
パラメータと言語コードを src ディレクティブに追加します(例: gsi/client?hl=<iso-639-code>
)。
設定されていない場合は、ブラウザのデフォルトの言語 / 地域または Google セッション ユーザーの設定が使用されます。そのため、ユーザーごとにローカライズされたボタンのバージョンやサイズが異なる可能性があります。
詳しくは、次の表をご覧ください。
タイプ | 必須 | 例 |
---|---|---|
string | 任意 | locale: "zh_CN" |
リスナーのクリック
click_listener
属性を使用して、「Google でログイン」ボタンがクリックされたときに呼び出される JavaScript 関数を定義できます。
google.accounts.id.renderButton(document.getElementById("signinDiv"), { theme: 'outline', size: 'large', click_listener: onClickHandler }); function onClickHandler(){ console.log("Sign in with Google button clicked...") }
この例では、[Google でログイン] ボタンをクリックすると、「[Google でログイン] ボタンをクリック」というメッセージがコンソールに記録されます。
データ型: Credential
native_callback
関数が呼び出されると、Credential
オブジェクトがパラメータとして渡されます。次の表に、オブジェクトに含まれるフィールドを示します。
項目 | |
---|---|
id |
ユーザーを識別します。 |
password |
パスワード |
メソッド: google.accounts.id.disableAutoSelect
ユーザーがウェブサイトからログアウトしたら、google.accounts.id.disableAutoSelect
メソッドを呼び出してステータスを Cookie に記録する必要があります。これにより、UX のデッドループを回避できます。このメソッドの次のコード スニペットをご覧ください。
google.accounts.id.disableAutoSelect()
次のコードサンプルでは、onSignout()
関数を指定して google.accounts.id.disableAutoSelect
メソッドを実装しています。
<script>
function onSignout() {
google.accounts.id.disableAutoSelect();
}
</script>
メソッド: google.accounts.id.storeCredential
このメソッドは、ブラウザのネイティブ認証情報マネージャー API の store()
メソッドのラッパーです。したがって、パスワード認証情報の保存にのみ使用できます。このメソッドの次のコードサンプルをご覧ください。
google.accounts.id.storeCredential(Credential, callback)
次のコードサンプルでは、onSignIn()
関数を指定して google.accounts.id.storeCredential
メソッドを実装しています。
<script>
function onSignIn() {
let cred = {id: '...', password: '...'};
google.accounts.id.storeCredential(cred);
}
</script>
メソッド: google.accounts.id.cancel
証明書利用者 DOM からプロンプトを削除すると、ワンタップ フローをキャンセルできます。認証情報がすでに選択されている場合、キャンセル オペレーションは無視されます。このメソッドの次のコードサンプルをご覧ください。
google.accounts.id.cancel()
次のコードサンプルでは、onNextButtonClicked()
関数を使用して google.accounts.id.cancel()
メソッドを実装しています。
<script>
function onNextButtonClicked() {
google.accounts.id.cancel();
showPasswordPage();
}
</script>
ライブラリ読み込みコールバック: onGoogleLibraryLoad
onGoogleLibraryLoad
コールバックを登録できます。「Google でログイン」JavaScript ライブラリが読み込まれると通知されます。
window.onGoogleLibraryLoad = () => {
...
};
このコールバックは、window.onload
コールバックのショートカットです。動作に違いはありません。
次のコード例は、onGoogleLibraryLoad
コールバックを実装しています。
<script>
window.onGoogleLibraryLoad = () => {
google.accounts.id.initialize({
...
});
google.accounts.id.prompt();
};
</script>
メソッド: google.accounts.id.revoke
google.accounts.id.revoke
メソッドは、指定したユーザーの ID トークンの共有に使用された OAuth 権限付与を取り消します。このメソッドのコード スニペットは次のとおりです。
javascript
google.accounts.id.revoke(login_hint, callback)
パラメータ | タイプ | 説明 |
---|---|---|
login_hint |
string | ユーザーの Google アカウントのメールアドレスまたは一意の ID。ID は、credential ペイロードの sub プロパティです。 |
callback |
function | オプションの RevocationResponse ハンドラ。 |
次のコードサンプルは、ID を指定して revoke
メソッドを使用する方法を示しています。
google.accounts.id.revoke('1618033988749895', done => { console.log(done.error); });
データ型: RevocationResponse
callback
関数が呼び出されると、RevocationResponse
オブジェクトがパラメータとして渡されます。次の表に、取り消しレスポンス オブジェクトに含まれるフィールドを示します。
項目 | |
---|---|
successful |
このフィールドはメソッド呼び出しの戻り値です。 |
error |
このフィールドには、必要に応じて詳細なエラー レスポンス メッセージが含まれます。 |
成功
このフィールドは、取り消しメソッド呼び出しが成功した場合は true に設定されるブール値で、失敗した場合は false に設定されます。
error
このフィールドは文字列値で、取り消しメソッドの呼び出しが失敗した場合に詳細なエラー メッセージが含まれます。成功時には未定義になります。