Level up your Twilio API skills in TwilioQuest, an educational game for Mac, Windows, and Linux. Download Now

メニュー

Expand
Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

Account Verification with Authy, Java and Servlets

アプリケーションにユーザーアカウント検証を実装する準備はできましたか? どのような仕組みになっているのか概要を以下に示します。

  1. ユーザーは、各自のデータ(電話番号など)をサインアップフォームに入力することで登録処理を開始します。
  2. 認証システムは、ワンタイムパスワードをユーザーの携帯電話に送信して、ユーザーがその電話番号を所持していることを確認します。
  3. ユーザーは登録を完了する前にワンタイムパスワードをフォームに入力します。
  4. ユーザーは成功ページを開いて、アカウントが作成された旨を知らせるSMSを受信します。

ビルディングブロック

これを行うには、以下の Twilio 駆動型 API を操作します。

Authy REST API

  • Authy ドキュメント:ヘルパーライブラリーに関するクイックスタート、ドキュメント、その他すべてを検索します。

Twilio REST API

  • メッセージリソース:ユーザーがアカウントを作成した後に、Twilio を直接使用して確認メッセージをユーザーに送信します。
        
        
        
        
        src/main/webapp/WEB-INF/web.xml

        Deployment descriptor

        src/main/webapp/WEB-INF/web.xml

        はじめましょう!

        Click here to move on to the next step!

        ユーザーモデル

        The User Model for this use-case is pretty straightforward and JPA offers us some tools to make it even simpler. If you have already read through the 2FA tutorial this one probably looks very similar. We need to make sure that our User model contains a phone number, country code so that the user can be verified with Authy.

              
              
              
              
              src/main/java/com/twilio/verification/model/User.java

              User model definition and JPA mappings

              src/main/java/com/twilio/verification/model/User.java

              Next we will see how to handle the new user form.

              Create a new user

              新規ユーザーフォーム

              When we create a new user, we ask for a name, e-mail address, and a password. In order to validate a new account we also ask the user for a mobile number with a country code. We will use Authy to send a one-time password via SMS to this phone number.

              It is now the servlet's responsibility to verify that the user provides the necessary information to create a new user. If the user is created successfully, they will be logged into the system automatically.

                    
                    
                    
                    
                    src/main/java/com/twilio/verification/servlet/RegistrationServlet.java

                    Handle registration of new accounts

                    src/main/java/com/twilio/verification/servlet/RegistrationServlet.java

                    これでユーザーはログインしましたが、検証はまだです。次のステップでは、Authy を使ってユーザーを検証する方法について学びます。

                    Authyと協調動作するようアプリケーションを構成する

                    Authy の設定

                    In .environment we list configuration parameters for the application. These are pulled from system environment variables, which is a helpful way to access sensitive values (like API keys). This prevents us from accidentally checking them into source control. We use the System.getenv method to load the key and inject the AuthyApiClient into the RegistrationServlet class.

                    ここで、Authy プロダクションキーが必要となります(こちらで Authy にサインアップしてください)。Authy アプリケーションを作成する場合、プロダクションキーはダッシュボード上にあります。

                    Authy ダッシュボード

                          
                          
                          
                          
                          src/main/java/com/twilio/verification/servlet/RegistrationServlet.java

                          Register your AuthyAPIClient with your Authy API key

                          src/main/java/com/twilio/verification/servlet/RegistrationServlet.java

                          Now let's check out the Servlet handling a new user registration and see how it sends a token upon account creation.

                          Send a token to our new user

                          アカウント作成時のトークンの送信

                          Once the user has an authyId we can actually send a verification code to that user's mobile phone using the Java Client for Authy.

                          When our user is created successfully via the form we implemented, we send a token to the user's mobile phone to verify their account in our servlet.

                                
                                
                                
                                
                                src/main/java/com/twilio/verification/servlet/RegistrationServlet.java

                                Handle registration of new accounts

                                src/main/java/com/twilio/verification/servlet/RegistrationServlet.java

                                コードの送信時、ユーザーが受信したトークンを入力できる別のページに遷移させ、 こうして検証プロセスが完了します。

                                Let's check out the code for token verification!

                                コードの検証

                                Servletのメソッドは送信フォームを処理します。 これは、以下の目的で必要になります:

                                • 現在のユーザーを取得します。
                                • ユーザーによって入力されたコードを検証します。
                                • 入力されたコードが有効な場合は、ユーザーモデルの boolean フラグを反転して、アカウントが検証されたことを示します。

                                コードの検証

                                The Authy client provides us with a verify() method that allows us to pass a user id and a token. In this case we just need to check that the API request was successful and, if so, set the User's verified field to true.

                                      
                                      
                                      
                                      
                                      src/main/java/com/twilio/verification/servlet/VerifyCodeServlet.java

                                      Authyのコードを検証する

                                      src/main/java/com/twilio/verification/servlet/VerifyCodeServlet.java

                                      トークン検証については、これで終わりです。ただし、メッセージがエンドユーザーの電話機に届かない場合に確認コードを再送信する方法がなければ、検証フォームはあまり役立ちません。

                                      Re-send a missing verification code

                                      コードの再送信

                                      Since the form for re-sending the code is very simple, we're going to skip that for this tutorial. Let's just look at the servlet.

                                      このメソッドは、リクエストに関連付けられている user をロードし、先に使用したものと同じ Authy API メソッドを使用してコードを再送信します。

                                            
                                            
                                            
                                            
                                            src/main/java/com/twilio/verification/servlet/ResendTokenServlet.java

                                            Re-send an Authy verification code

                                            src/main/java/com/twilio/verification/servlet/ResendTokenServlet.java

                                            To wrap things up, let's implement the last step where we confirm that the user's account has been verified with a text message.

                                            Send a confirmation SMS to a verified user

                                            確認メッセージの送信

                                            In this example, we create a single instance of the Twilio REST API helper, called client.

                                            Then we need to get the account, the messageFactory, and finally use its sendMessage method in order to send an SMS to the user's phone.

                                                  
                                                  
                                                  
                                                  
                                                  src/main/java/com/twilio/verification/lib/Sender.java

                                                  Send a confirmation with a TwilioRestClient wrapper

                                                  src/main/java/com/twilio/verification/lib/Sender.java

                                                  Congratulations! You've successfully verified new user accounts with Authy. Where can we take it from here?

                                                  関連トピック

                                                  次はどこでしょうか?

                                                  Twilio を使う Java 開発者であれば、他のチュートリアルも調べてみてください。

                                                  Click-To-Call

                                                  ウェブページのボタンを押して、電話を介して訪問者をライブサポートまたはセールス担当者に接続します。

                                                  自動アンケート

                                                  音声通話または SMS テキストメッセージを介して調査を実施し、ユーザーから構造化データを迅速に収集します。

                                                  これは役に立ちましたか?

                                                  このチュートリアルをご覧いただき、ありがとうございます。 ご意見やご感想などございましたら、ぜひお聞かせください。 Twitterからご連絡いただき、どんなものを構築されているかお聞かせください!

                                                  Agustin Camino Paul Kamp Kat King Samuel Mendes Hector Ortega
                                                  Rate this page:

                                                  ヘルプが必要ですか?

                                                  誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。