メインコンテンツへスキップ
リダイレクト方式では、ユーザーをDiditがホストするページに移動させて認証を行い、完了後にコールバックURL経由でアプリに戻します。

リダイレクトを使用する場合

  • クロスデバイス認証: デスクトップで開始し、モバイルで完了
  • 最大限の互換性: 古いブラウザを含むすべてのブラウザで動作
  • シンプルな連携: iframeの設定が不要
  • カメラの問題: iframeでのカメラアクセスに問題がある場合

実装

ステップ1: セッションを作成する(バックエンド)

セッション作成のレスポンスにはurlという名前のフィールドが含まれます。この値をブラウザに渡してください。

ステップ2: ユーザーをリダイレクトする(フロントエンド)

HTML:
React:
Vue:

コールバックの処理

認証が完了すると、Diditはクエリパラメーター付きでコールバックURLにリダイレクトします。

Next.jsの例

Express.jsの例

Vue Routerの例


新しいタブで開く

ユーザーが認証している間もアプリを開いたままにしておきたい場合は、次のようにします。
新しいタブを使う場合は、Webhookと組み合わせて認証の完了を把握してください。

セキュリティのベストプラクティス

コールバックをサーバー側で検証する

クエリパラメーターのverificationSessionIdとstatusは、信頼できないUI用のヒントとして扱ってください。最終的な判定は必ずバックエンドで確認してください。Webhookを処理する方法(推奨)か、APIで判定を再取得する方法があります。

Webhookを使用する

最も信頼性の高い連携を実現するには、Webhookを使用して、ユーザーのブラウザの挙動に関係なく認証結果をバックエンドで直接受け取ってください。

クロスデバイスフロー

リダイレクト方式は、クロスデバイス認証に標準で対応しています。
  1. ユーザーがデスクトップで「Verify」をクリックします
  2. ユーザーが認証ページにリダイレクトされます
  3. 必要に応じて、ユーザーはQRコードをスキャンしてモバイルで続行できます
  4. 完了後、ユーザーはコールバックURLにリダイレクトされます。どのデバイスでリダイレクトされるかはcallback_method(initiator、completer、またはboth)で制御します

トラブルシューティング

コールバックを受信できない

  1. セッション作成時にコールバックURLが正しく設定されているか確認してください
  2. コールバックURLがインターネットからアクセス可能であることを確認してください
  3. URLに誤字やエンコードの問題がないか確認してください

ステータスが常に「Declined」になる

  1. Didit Consoleでワークフローの設定を確認してください
  2. 使用しているテスト用の書類が有効であるか確認してください
  3. APIでセッションの詳細を確認し、具体的な却下理由を確認してください

リダイレクトループが発生する

  1. コールバックハンドラーが認証ページにリダイレクトし直していないか確認してください
  2. コールバックページのキャッシュに問題がないか確認してください
  3. ブラウザのキャッシュをクリアして再試行してください

サンプルリポジトリ

GitHubリポジトリ

GitHubでソースコードとサンプルを確認できます
最終更新日 2026年11月1日