概要
UniLink iframe (バックエンド不要)
最も手軽に始められる方法です。UniLink URLをコピーして貼り付けるだけです。必要なもの
- Didit のワークフロー (Didit Consoleで作成)
- UniLink URL (ワークフローのCopy Linkをクリック)
実装
⚠️ 必須: ライブネス検知中にカメラへアクセスするため、allow属性は必須です。
主なメリット
- 1分未満でセットアップ: バックエンドもAPIキーも不要
- 設定不要: コールバックURLはワークフローの設定で指定
- MVPに最適: すぐに始められます
API Session iframe (バックエンドあり)
セッションごとのカスタマイズが必要な高度な連携向けです。使用する場面
- セッションごとにカスタムの
vendor_dataやmetadataを渡す - セッションごとに異なるコールバックURLを設定する
- 認証開始前にサーバー側でセッションを追跡する
- セッションを自社のユーザーIDと関連付ける
実装
ステップ1: セッションを作成する (バックエンド) セッション作成のレスポンスにはurlというフィールドが含まれます。これをiframeのsrcとして使用してください。
イベントの受信 (postMessage)
検証ページは親ウィンドウにイベントを送信します。すべてのメッセージは次の形式です。event.data.sessionIdではなく、event.data.data.sessionIdを読み取ってください。
didit:ready ({ sessionId })、didit:started、didit:step_started / didit:step_completed / didit:step_changed ({ step, ... })、didit:status_updated ({ status })、didit:completed ({ sessionId, status })、didit:cancelled、didit:error ({ error, step? })、didit:close_request、didit:layout ({ contentHeight, colorScheme, dir }、後述を参照)。型付きコールバックとして利用できる認証イベントは、JavaScript SDKイベントリファレンスに記載されています。バージョン0.5.0以降、SDKはレイアウトメッセージをonEventに転送せず、内部で処理します。
didit:layoutでiframeのサイズを調整する
検証ページは、必要な領域の大きさをdidit:layoutメッセージで通知します。このメッセージは読み込み時に1回送信され、その後もコンテンツの高さ、テーマ、テキストの方向が変わるたびに送信されます。
独自のiframeで
didit:layoutを受信するには、その認証URLにsdk_presentation=embeddedを追加してください。バージョン0.5.0以降は、JavaScript SDKがpresentationを自動で設定します。presentationパラメーターがない場合、ページはスタンドアロンのレイアウトを使用し、レイアウトメッセージを送信しません。colorSchemeとdirを使ってページのテーマとテキスト方向に合わせてください。
ユーザーの接続が切れると、ページには「No internet connection」画面が表示され、接続が回復すると自動的に閉じます。ユーザーがこの画面でExit Verificationを選択すると、ページはerror: "network_error"を含むdidit:errorを送信し、続いてdidit:cancelledを送信します。didit:cancelledを受け取ったらiframeを閉じてください。
モーダルの実装
ページに重ねて表示する洗練されたモーダルを実装するには:HTML/CSS/JS
Reactコンポーネント
モーダル形式の認証に使える再利用可能なReactコンポーネント:使い方
Vueコンポーネント
設定
必要な権限
撮影、位置情報、コピー、メディアの互換性に対応するため、次の権限リストをすべて指定してください。allow属性は権限を委譲するものです。ユーザーの選択や、ホストページに設定されたより厳しいPermissions-Policyヘッダーを上書きすることはありません。
iframeのサイズ
認証フローは、iframeのサイズに合わせてレイアウトを調整します。iframeは、表示するウィンドウに合わせたサイズにしてください。
中間の範囲では、最初の
didit:layoutメッセージを受信するまで500px×700pxで表示し、高さの上限は同じにしてください。didit:layoutの例では、メッセージ受信前のコンピューターとスマートフォンのサイズも含め、3つのサイズすべてを適用しています。
コンテンツセキュリティポリシー (CSP)
CSPを使用している場合は、frame-srcディレクティブにDiditを追加してください。
クロスデバイス認証
InContext iframeは、クロスデバイス認証に自動で対応しています。- ユーザーがデスクトップで認証を開始します
- カメラを使用できない場合、QRコードが表示されます
- ユーザーがモバイル端末でQRコードをスキャンします
- ユーザーがモバイル端末で認証を完了します
- デスクトップのiframeが結果を受けて自動的に更新されます
トラブルシューティング
カメラが動作しない
- iframeに権限リストがすべて含まれていることを確認します
- サイトがHTTPSで配信されていることを確認します
- ユーザーがお使いのドメインにカメラの権限を許可していることを確認します
- iframeでのカメラへのアクセスが失敗する場合は、リダイレクト方式をお試しください
iframeが読み込まれない
- コンテンツセキュリティポリシー(CSP)に問題がないか確認します
frame-srcディレクティブにhttps://verify.didit.meを追加します- ブラウザのコンソールにエラーが出ていないか確認します
postMessageを受信できない
- 正しいオリジン(
https://verify.didit.me、またはホワイトラベルのドメイン)からのメッセージをリッスンしていることを確認します - iframeを開く前にイベントリスナーが追加されていることを確認します
- イベント名と形式を確認します。タイプにはプレフィックスが付いており(
verification_completeではなくdidit:completed)、ペイロードはevent.data.dataの下にネストされています
サンプルリポジトリ
GitHubリポジトリ
GitHubでソースコードとサンプルを確認できます