リダイレクトを使用する場合
- クロスデバイス認証: デスクトップで開始し、モバイルで完了
- 最大限の互換性: 古いブラウザを含むすべてのブラウザで動作
- シンプルな連携: iframeの設定が不要
- カメラの問題: iframeでのカメラアクセスに問題がある場合
実装
ステップ1: セッションを作成する(バックエンド)
セッション作成のレスポンスにはurlという名前のフィールドが含まれます。この値をブラウザに渡してください。
ステップ2: ユーザーをリダイレクトする(フロントエンド)
HTML:コールバックの処理
認証が完了すると、Diditはクエリパラメーター付きでコールバックURLにリダイレクトします。Next.jsの例
Express.jsの例
Vue Routerの例
新しいタブで開く
ユーザーが認証している間もアプリを開いたままにしておきたい場合は、次のようにします。セキュリティのベストプラクティス
コールバックをサーバー側で検証する
クエリパラメーターのverificationSessionIdとstatusは、信頼できないUI用のヒントとして扱ってください。最終的な判定は必ずバックエンドで確認してください。Webhookを処理する方法(推奨)か、APIで判定を再取得する方法があります。
Webhookを使用する
最も信頼性の高い連携を実現するには、Webhookを使用して、ユーザーのブラウザの挙動に関係なく認証結果をバックエンドで直接受け取ってください。クロスデバイスフロー
リダイレクト方式は、クロスデバイス認証に標準で対応しています。- ユーザーがデスクトップで「Verify」をクリックします
- ユーザーが認証ページにリダイレクトされます
- 必要に応じて、ユーザーはQRコードをスキャンしてモバイルで続行できます
- 完了後、ユーザーはコールバックURLにリダイレクトされます。どのデバイスでリダイレクトされるかは
callback_method(initiator、completer、またはboth)で制御します
トラブルシューティング
コールバックを受信できない
- セッション作成時にコールバックURLが正しく設定されているか確認してください
- コールバックURLがインターネットからアクセス可能であることを確認してください
- URLに誤字やエンコードの問題がないか確認してください
ステータスが常に「Declined」になる
- Didit Consoleでワークフローの設定を確認してください
- 使用しているテスト用の書類が有効であるか確認してください
- APIでセッションの詳細を確認し、具体的な却下理由を確認してください
リダイレクトループが発生する
- コールバックハンドラーが認証ページにリダイレクトし直していないか確認してください
- コールバックページのキャッシュに問題がないか確認してください
- ブラウザのキャッシュをクリアして再試行してください
サンプルリポジトリ
GitHubリポジトリ
GitHubでソースコードとサンプルを確認できます