Turnstile ウィジェットは、ウェブページ上での Turnstile の動作を定義します。各ウィジェットには、モード、ラベル、サイトキー、シークレットキーがあります。設定の異なるウィジェットを複数作成できます。
Turnstile は challenges.cloudflare.com でホストされています。アプリケーションはこのオリジンに接続します。サイトで Content Security Policy を使っている場合は、このドメインへの接続を許可する必要があります。
各ウィジェットには、一意の sitekey とシークレットキーのペア、および設定オプションがあります。
| コンポーネント | 説明 |
|---|---|
| sitekey | サイト上で Turnstile ウィジェットを呼び出す公開鍵です。 |
| シークレットキー | サーバー側のトークン検証に使う秘密鍵です。 |
| 設定 | モード、ホスト名、外観設定、その他のオプションです。 |
Turnstile ウィジェットで使えるモードは、Managed、Non-Interactive、Invisible です。
| ウィジェットモード | 説明 | 用途 |
|---|---|---|
| Managed(推奨) | 訪問者のリスクレベルに応じて、非インタラクティブなチャレンジとチェックボックスのチャレンジを自動で選びます。解読する画像やテキストはありません。 | シンプルな設定で、状況に応じたセキュリティを適用します。保護とユーザー体験のバランスを取ります。 |
| Non-Interactive | 読み込み中のスピナー付きのウィジェットを表示します。訪問者の操作なしでチャレンジを実行します。 | 検証が行われていることを示しつつ、手間を減らします。 |
| Invisible | 表示されるウィジェットや読み込み表示なしで、バックグラウンドだけでチャレンジを実行します。 | 検証の見た目をなくし、視覚的な体験を優先します。 |
Managed モードは、Cloudflare がすべて管理します。クライアント側のシグナルとリスクレベルに応じて、適切な動作を自動で選びます。Cloudflare は訪問者の情報を使い、インタラクティブなチャレンジが必要かを判断します。
訪問者が人間であることを確認するために追加のチェックが必要な場合にだけ、Turnstile は操作を求めます。操作が必要なときは、訪問者はチェックボックスを選択します。解読する画像やテキストはありません。
Managed モードは、ウィジェットの動作を細かく調整せず、シンプルな設定にしたい場合に適しています。
訪問者には、ブラウザーでチャレンジが実行されているあいだ、読み込み中のスピナー付きウィジェットが表示されます。Managed モードと違い、訪問者がウィジェットを操作する必要はありません。
Non-Interactive モードは、訪問者体験を優先し、Turnstile の操作による手間をサイトに加えたくない場合に適しています。
Invisible モードは Non-Interactive モードに近く、訪問者が Turnstile ウィジェットを操作することはありません。さらに、ウィジェットや、不可視のブラウザーチャレンジが進行中であることの表示もありません。
Invisible モードは、サイト上の訪問者体験と見た目を優先したい場合に適しています。
ウィジェットは、normal、flexible、compact のサイズで実装できます。
設定オプションとコード例の詳細は、ウィジェットの設定 を参照してください。
Turnstile ウィジェットは、サイトのデザインに合わせた複数の外観モードとテーマに対応しています。
実装の詳細は、ウィジェットの設定 を参照してください。
flowchart LR
accTitle: 通常のウィジェット動作状態
accDescr: Turnstile ウィジェットの通常の動作状態を示します。
A[<b>読み込み中</b><br /><small>ウィジェットがチャレンジを処理しています。</small> ] --> B[<b>操作*</b><br /><small>訪問者がチェックボックスを選択する必要があります。<br />*Managed モードのみ。</small>]
B --> C[<b>成功</b><br /><small>チャレンジが正常に完了しました。</small>]
種類 |
説明 |
|---|---|
| 不明なエラー | チャレンジ中に不明なエラーが起きると、訪問者はこのウィジェット状態になります。ウィジェットのトラブルシューティング手順に従うか、ページを更新してチャレンジを再試行できます。 |
| 操作がタイムアウトしました | チェックボックスが表示されたあと、訪問者が長時間操作しなかった場合です。ページまたはウィジェットを再読み込みして、チャレンジを再発行する必要があります。 |
| チャレンジがタイムアウトしました | 検証が完了したあと、その後の操作がないと、チャレンジの結果は無効になります。たとえば、ログインページの Turnstile ウィジェットが成功したあと、訪問者が長時間ログインしなかった場合です。ページまたはウィジェットを再読み込みして、チャレンジを再発行する必要があります。 |
| 古い、または未対応のブラウザー | 古いブラウザーや未対応のブラウザーを使っている訪問者は、このウィジェット状態になります。対応ブラウザーの詳細は 対応ブラウザー を参照してください。 |