メインコンテンツへスキップ
Didit JavaScript SDKを使うと、ユーザー体験を完全に制御しながら、Webアプリケーションにプログラムで認証を組み込めます。

機能

  • シンプルなAPI - 使いやすいメソッドを備えたシングルトンパターン
  • 柔軟な連携 - UniLink URLを直接使うことも、バックエンド経由でセッションを作成することも可能
  • レスポンシブ - デスクトップとモバイルのブラウザで動作
  • カスタマイズ可能 - スタイルと動作を調整できる設定オプション
  • 複数のフォーマット - ESM、CommonJS、UMDのビルドを提供
  • TypeScriptサポート - 完全な型定義を同梱
  • モーダルモードとインラインモード - モーダルオーバーレイとインライン埋め込みから選択可能
  • イベントコールバック - 認証の進行状況をリアルタイムで通知するイベント(開始、ステップ完了、終了)
  • 状態管理 - SDKの状態を監視してカスタムUIを構築可能

インストール

NPM/Yarn

CDN (UMD)

npmで公開されている最新リリースは0.5.1です。 0.5.0ではDiditSdk.shared.submitEvent()が追加されました(イベントの送信を参照)。0.5.1では、ホスト型フローがSDK内でデジタルIDウォレットにユーザーのIDを要求できるようになり、起動に失敗した場合はerrorMessageとともにerror状態が維持されるようになりました。 0.4.0では、ネイティブSDKですでに提供されているカメラオプションが追加されました。これには、顔撮影を背面カメラで開始するdefaultLivenessCameraも含まれます(カメラオプションを参照)。

インストール済みバージョンの確認

インストール済みのリリースについては、引き続きパッケージマネージャーの情報が信頼できる情報源です。
ランタイムのエクスポートを確認することもできます。
0.3.1以降、このエクスポートはすべてのJavaScript形式(ESM、CommonJS、UMD、minified UMD)とTypeScript宣言において、パッケージのバージョンから生成されるため、常にインストール済みのリリースと一致します。 0.3.0以前では、インストールされているバージョンにかかわらず、このエクスポートは0.2.1を返します。これらのリリースでは、代わりにnpm listまたはロックファイルを使用してください。

Vanilla JavaScript

ESモジュール / TypeScript

スクリプトタグ (UMD)


フレームワーク別の例

SDK Webサンプル

React、Angular、Svelte、Next.js、Nuxt、Vueなど。各フレームワークのサンプルとドキュメントを掲載しています。

連携方法

SDKの連携方法は2つあります。 Didit ConsoleからワークフローのUniLink URLを直接使用します。バックエンドは不要です。
UniLink URLはDidit Console → 対象のワークフロー → Copy Linkで取得できます。 生成されたsession_idはイベントで通知されます。 イベントリファレンスはこちら

方法2: バックエンドセッション (本番環境で推奨)

バックエンドがDidit APIでセッションを作成し、ホスト型検証ページのURLを返します。この方法では、vendor_data、セッションごとのcallback、metadataを制御でき、ユーザーがフロントエンドに到達する前にセッションを作成できます。 詳しくはCreate Session APIリファレンスを参照してください。 バックエンド(Node.js / Express)
フロントエンド
セッション作成レスポンスのフィールド名はurlです(Create Session OpenAPIスキーマを参照)。これをstartVerification({ url })にそのまま渡してください。

設定

DiditSdkConfigurationインターフェースの全体は、下記のTypeScript型定義を参照してください。

カメラオプション

カメラオプションを使用するには、@didit-protocol/sdk-web0.4.0以降が必要です。
Web SDKは、ネイティブSDKと同じ4つのカメラオプションを提供します。デフォルトでは、書類の撮影では背面カメラが、顔(ライブネス)の撮影では前面(セルフィー)カメラが起動します。カメラを複数備えたデバイスでは、どちらのステップでも撮影中にカメラを切り替えるボタンが表示されます。顔の撮影を背面カメラで開始するには、defaultLivenessCamera: 'back'を設定します。キオスク端末で使う場合や、オペレーターがデバイスを持って認証対象者に向ける場合などに使います。
  • 指定できるレンズの値は'front'と'back'です。それ以外の値は無視されます。ブール値ではない切り替えボタンのフラグも同様に無視されます。
  • 要求されたカメラがないデバイスでは、搭載されているカメラがそのまま使われます。たとえば、'back'を指定されたノートPCでもWebカメラが使用されます。カメラが1台のみのデバイスでは、フラグの設定にかかわらず切り替えボタンは表示されません。
  • ライブネスのオプションは、パッシブライブネスチェックに適用されます。アクティブライブネスには影響しません。
  • SDKは、これらのオプションを認証URLのクエリパラメーターdocument_camera、liveness_camera、document_camera_switch、liveness_camera_switchとして認証ページに渡します。SDKを介さずに認証URLを直接開く場合は、これらを自分で設定してください。クエリ文字列のないURLには?liveness_camera=backを、すでにパラメーターがあるURLには&liveness_camera=backを付加します。URL APIで設定すれば、どちらの場合にも対応できます。

イベントの送信

DiditSdk.shared.submitEvent()は、エンドユーザーのイベント(サインアップ、ログイン、ログイン失敗、ログアウト、パスワードリセット、MFA、デバイス変更)を、Diditのイベントモニタリング用にキューに追加します。 バックエンドでその人物用のモニタリングトークンを発行すると、SDKがデバイスフィンガープリントとともにイベントをバッチで送信します。 APIキーは決してブラウザに渡さないでください。
トークン、イベントのフィールド、配信の動作については、SDKイベント送信を参照してください。

モーダルのサイズとスクロール

以下のサイズ調整の動作には0.3.1以降が必要です。0.3.0以前では、高さの低いデスクトップや横向きのビューポートで、認証フローの一部が切れて表示されることがあります。
モーダルモードの最大幅は500px、最大高さは700pxです。高さの低いデスクトップや横向きのビューポートでは、iframeは表示中のビューポートの90%に合わせて調整されます。認証フローはiframe内でスクロールします。そのため、モーダルの背後のページはロックされたまま、すべてのステップにアクセスできます。 SDKは、動的ビューポート単位に対応したブラウザではdvhを使用し、サポート対象の古いブラウザではvhにフォールバックします。幅540px以下では、モーダルが表示中のビューポート全体に表示されます。閉じるボタンと終了確認は、モーダル内に表示されたままです。

リニューアルされた認証フロー

このセクションの内容はすべてバージョン0.5.0から適用されますが、このバージョンはまだ公開されていません。アップグレードするまで、モーダルは上記のサイズのままです。
バージョン0.5.0以降では、ページがdidit:layoutメッセージでレイアウトを通知すると、モーダルはリニューアルされた認証フローに合わせてサイズを調整します。
  • 初期サイズ(バージョン0.5.0以降): ページがレイアウトを通知するまでの間、および通知しないページでは、モーダルは従来の最大サイズである500px×700pxのままです。高さの低いウィンドウにも引き続き収まり、540px以下では全画面で表示されます。
  • 閉じるボタン(バージョン0.5.0以降): ページのトップバーの上に表示される44pxの円形ボタンです。ページのライトテーマまたはダークテーマに合わせて表示され、右から左に書く言語では左側に移動します。
  • 埋め込みモード(バージョン0.5.0以降): 従来どおり、ホスト要素全体に表示されます(埋め込みモードを参照)。
  • 認証URL(バージョン0.5.0以降): SDKはsdk_presentation(modalまたはembedded)を追加します。モーダルの場合はsdk_close_button(showCloseButtonに従ってtrueまたはfalse)も追加します。これにより、ページは自身がどのように表示されているかを把握できます。
  • イベント(バージョン0.5.0以降): SDKはdidit:layoutを自身で処理し、onEventには渡しません。
設定は不要で、既存のオプションはすべて引き続き機能します。

埋め込みモード

埋め込みモードには、モーダルの500px×700pxという上限は適用されません。SDKはホスト要素のコンテンツボックス全体に表示されます。そのため、ホスト要素には明示的な高さを指定するか、ほかの方法で高さが決まるようにしてください。
ホスト要素の高さが決まっていない場合、埋め込みiframeにも使用できる高さがありません。レイアウトが変わったときは、ホスト要素のサイズを変更してください。SDKは引き続き自動的にその要素全体に表示されます。

認証結果

SDKは3種類の結果を返します。

完了

認証フローが終了しました(承認済み、保留中、または却下)。
TypeScriptの型では'Approved' | 'Pending' | 'Declined'と宣言されていますが、値にはホスト型フローのセッションステータスがそのまま渡されるため、In Reviewなどほかのステータスを受け取る場合もあります。Pendingは、フローからステータスが報告されなかった場合にSDKが使うフォールバック値です。statusは目安として扱い、正式な判定にはWebhookを利用してください。

キャンセル

ユーザーが認証モーダルを閉じました。sessionIdがすでに判明している場合はsessionが含まれます(iframeがセッションIDを報告する前にユーザーがキャンセルした場合はundefinedになることがあります)。

失敗

認証中にエラーが発生しました。

状態管理

独自のUIでSDKの状態を監視できます。

APIリファレンス

DiditSdk.shared

SDKのシングルトンインスタンスです。

メソッド

プロパティ

コールバック


詳細なイベント

onEventコールバックで認証の進行状況を追跡できます。

イベントリファレンス

接続が切れた場合

ユーザーの接続が切断されると、検証ページはステップを読み込み中のままにせず、フロー上に「No internet connection」画面を表示します。 バックグラウンドで確認を続け、Didit に再び接続できるようになるとすぐにこの画面を自動的に閉じます。ユーザーは中断したステップから続行できます。 SDKのモーダルまたはiframe内では、この画面にExit Verificationも表示されます。これを選択すると、ページはerror: "network_error"を含むdidit:errorを送信し、続いてdidit:cancelledを送信します。SDKはモーダルを閉じ、type: "cancelled"でonCompleteを呼び出します。 バージョン0.5.0以降、ページのdidit:layoutメッセージはモーダルのサイズを調整するもので、onEventには届きません。代わりに独自のiframeでページを埋め込む場合は、didit:layoutでiframeのサイズを設定するを参照してください。

ステップの値

stepフィールドには次のいずれかが入ります。
  • document_selection - 書類の種類の選択
  • document_front - 書類の表面
  • document_back - 書類の裏面
  • face - 顔・ライブネス検証
  • email - メールアドレス認証
  • phone - 電話番号検証
  • poa - 住所証明
  • questionnaire - アンケートのステップ

チャネルの値

code_sentのchannelフィールドには次の値が入ります。
  • email - メールでコードを送信
  • sms - SMSでコードを送信
  • whatsapp - WhatsAppでコードを送信

コードの長さ

code_sentのcodeSizeフィールドはOTPコードの桁数(例: 4桁または6桁)を示します。

TypeScriptの型

最終更新日 2026年11月1日