0

これは、提供された電話番号のみを使用してユーザーをログインさせる認証フローです (Whatsapp スタイル)。手順は次のとおりです。

  1. ユーザーが電話番号を入力し、サーバーに送信します。
  2. サーバーは 4 桁のランダム キーを生成し、ペア (電話、キー) を DB に保存します。
  3. サーバーは、サードパーティの SMS サービスにキーを電話に送信するように依頼します。
  4. SMS サービスがメッセージを送信します。
  5. ユーザーは SMS からキーを入力し、電話と共にサーバーに送信されます。
  6. サーバーは DB に対してペアをチェックします。
  7. ペアが存在する場合、サーバーはさらなる呼び出しのためにトークンを送り返します。

ここに画像の説明を入力

私が理解しようとしているのは、Twilio や Nexmo などのサービスがどこに適合するか (またはフローの一部を置き換えるか) です。

私が理解していることから、たとえば Nexmo を見ると、手順 2 と 3 を
https://api.nexmo.com/verify/への API 呼び出しに置き換えて、応答からのrequest_idを DB にペア (電話) として
保存できます。 ,request_id)。 そして今、ユーザーが 4 桁のコードを入力して返送したら、https ://api.nexmo.com/verify/check/json を呼び出し て request_id とコードを提供する必要があります。



しかし、request_id はどこで取得できますか?
サーバーは、Nexmo から情報を取得した瞬間にそれをクライアントに送り返す必要がありますか?
ここでは Nexmo を使用するメリットがわかりません。

4

1 に答える 1

2

最初の質問への回答: request_id は、最初の検証 API 呼び出しに対する応答の一部です。参照: https://docs.nexmo.com/index.php/verify/verify

ここでの Nexmo のメリットについては、次の 2 つの選択肢があると思います。

  1. 独自のコードを生成し、Nexmo を使用してユーザーにテキストで送信し、ユーザーにコードをアプリケーションに送信してもらい、独自のデータベースに対してコードを検証します。
  2. Nexmo 検証サービスを使用して、コードを生成してユーザーに送信し、返された request_id をデータベースに保存し、ユーザーにコードをアプリケーションに送信させ、Nexmo 検証 API を呼び出してコードを検証します。

いくつかの点で、API 呼び出しが少ないため、最初のオプションの方が簡単です。ただし、Nexmo Verify を使用する 2 番目のオプションの利点は、SMS が機能していない場合に音声通話にフォールバックしたり、仮想電話番号を除外してスパムを防止したりするために、サービスにさらに多くの機能を提供することです。失敗した SMS 試行、レポート/分析などに対して支払う必要はありません。

うまくいけば、それは少し役立ちます。

于 2015-03-28T00:40:37.483 に答える