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, PHP and Laravel

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

  1. ユーザーは、各自のデータ(電話番号など)をサインアップフォームに入力することで登録処理を開始します。
  2. 認証システムは、ワンタイムパスワードをユーザーの携帯電話に送信して、ユーザーがその電話番号を所持していることを確認します。
  3. ユーザーは登録を完了する前にワンタイムパスワードをフォームに入力します。
  4. The user opens a success page and receives an SMS indicating that their account has been created!

ビルディングブロック

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

Authy REST API

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

Twilio REST API

  • メッセージリソース:ユーザーがアカウントを作成した後に、Twilio を直接使用して確認メッセージをユーザーに送信します。

AuthyとTwilioのシンプルさとパワーで、これらすべてのことは30分以内に完了します。  さぁ、はじめましょう!

Click here to move on to the next step!

ユーザーモデル

The User Model for this use-case is pretty straight-forward, and Laravel offers us some tools to make it even simpler. If you have already read through the 2FA tutorial, this one probably looks very similar.

        
        
        
        
        database/migrations/2014_10_12_000000_create_users_table.php

        Migration to create user table

        database/migrations/2014_10_12_000000_create_users_table.php

        Pretty simple user model, right? Next, we're going to visit the registration form on the client side.

        Take a look at the user registration form

        登録フォーム

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

        It is now the controller'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.

              
              
              
              
              app/Http/Controllers/UserController.php

              Create New Users

              app/Http/Controllers/UserController.php

              Now the user is logged in but not verified. In the next step, we'll learn how to configure Authy to integrate with our application.

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

              Authy の設定

              In .env.example 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). Using environment variables prevents us from accidentally checking them into source control. We also use our Laravel configuration file to load the key and inject Authy\AuthyApi into the application using a service provider.

              Now we need our Authy production key (sign up for Authy here). When you create an Authy application, the production key is found on the dashboard.

              Authy ダッシュボード

                    
                    
                    
                    
                    app/Providers/AuthyApiProvider.php

                    Register the service provider for the Authy API

                    app/Providers/AuthyApiProvider.php

                    Now that we've learned how to configure Authy, we need to jump over to the UserController to configure the Authy client and create an instance method to send a one-time password.

                    Learn how to send a one-time token to a new user

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

                    ユーザーが authy_id を取得したら、確認コードをそのユーザーの携帯電話に実際に送信できます。

                    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 controller. Once the code is sent, we redirect to another page where the user can enter the token they received, completing the verification process.

                          
                          
                          
                          
                          app/Http/Controllers/UserController.php

                          Send verification token via SMS on user creation

                          app/Http/Controllers/UserController.php

                          Next, we'll take a look at verifying the code the user provides us.

                          Verify your user's code

                          コードの検証

                          このコントローラー関数は、送信フォームを処理します。以下を行う必要があります。

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

                          The Authy PHP client provides us with a verifyToken() 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 $user->verified to true.

                                
                                
                                
                                
                                app/Http/Controllers/UserController.php

                                Verify a user-submitted token

                                app/Http/Controllers/UserController.php

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

                                検証コードを再送する方法を確認する

                                Re-Rending the Code

                                Since the form for re-sending the code is one line, we're going to skip that for this tutorial. Let's just look at the controller function.

                                      
                                      
                                      
                                      
                                      app/Http/Controllers/UserController.php

                                      Re-send a verification code when initial SMS fails

                                      app/Http/Controllers/UserController.php

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

                                      To wrap things up, let's implement the last step. We need to confirm that the user's account has been verified with a success page and a text message.

                                      Let the user know that they have been verified

                                      ユーザー詳細ページの表示

                                      この単純な blade テンプレートは、ユーザー名を表示し、検証されたことをユーザーに知らせます。

                                            
                                            
                                            
                                            
                                            resources/views/showUser.blade.php

                                            Render user information with a blade template

                                            resources/views/showUser.blade.php

                                            ユーザーが検証されたことをブラウザーで確認するには、これで十分です。次に、そのテキストメッセージを送信する方法を見てみましょう。

                                            Send a confirmation SMS!

                                            確認メッセージの送信

                                            Twilio REST APIヘルパーの単一インスタンスを作成します。 この例では$clientという名前です。

                                            Then all we need to do to send an SMS to the user's phone is use messages->create() method. Notice that we are using the user's fullNumber() to make sure we support international numbers. The fullNumber() method in the User model simply returns a combination of the country_code and phone_number that the user provided upon registration.

                                                  
                                                  
                                                  
                                                  
                                                  app/Http/Controllers/UserController.php

                                                  Send a confirmation message via SMS

                                                  app/Http/Controllers/UserController.php

                                                  ユーザーが電話番号を確認できるようにアカウント検証を実装しました。 これからどうすれば良いでしょうか。

                                                  関連トピック

                                                  次はどこでしょうか?

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

                                                  Click-To-Call

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

                                                  自動アンケート

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

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

                                                  Thanks for checking out this tutorial! If you have any feedback to share with us, we'd love to hear it. Reach out to us on Twitter and let us know what you've built!

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

                                                  ヘルプが必要ですか?

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