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?


For new development, we encourage you to use the Verify API instead of the Authy API. The Verify API is an evolution of the Authy API with continued support for SMS, voice, and email one-time passcodes, an improved developer experience and new features including:

  • Twilio helper libraries in JavaScript, Java, C#, Python, Ruby, and PHP
  • Access via the Twilio CLI
  • Improved Visibility and Insights
  • Push authentication SDK embeddable in your own application

You are currently viewing the Authy API. The Authy API will continue to be maintained, but any new features and development will be on the Verify API. Check out the FAQ for more information and Verify API Reference to get started.

この Flask サンプルアプリケーションは、一般的なログインフローの例です。このサンプルアプリを自分で実行するには、コードをダウンロードし、GitHub の指示に従ってください

二要素認証(2FA)をウェブアプリケーションに追加すると、ユーザーのデータのセキュリティーが向上します。多要素認証では、アプリへのログインによって 1 回検証し、Authy を使用してモバイルデバイスでもう 1 回検証することで、ユーザーのアイデンティティーを特定します。

第 2 要素については、ユーザーが携帯電話を所有していることを以下のいずれかによって検証します。

  • モバイル Authy アプリへの OneTouch プッシュ通知をユーザーに送信する
  • モバイル Authy アプリを通じてユーザーにトークンを送信する
  • Twilio 経由で Authy を使って送信された テキストメッセージでワンタイムトークンをユーザーに送信する。

VMwareがAuthy 2FAを使用してエンタープライズモビリティー管理ソリューションをセキュアにしているか見てみましょう。


Authy の設定

まだ Authy にサインアップしていない場合は、ここでサインアップします。最初のアプリケーションを作成し、任意の名前を付けます。アプリケーションを作成すると、プロダクション API キーがダッシュボードに表示されます。

Once we have an Authy API key, we store it in our .env file, which helps us set the environment variables for our app.

場合によっては、Authy ダッシュボードの OneTouch セクションでアプリケーションのコールバック URL も設定する必要があります。詳細については、プロジェクトの README を参照してください。


        Environment Variable Settings


        Flask アプリを設定したので、ユーザーを Authy に登録する方法を見てみましょう。

        Register a user using Authy


        When a new user signs up for our website we call this helper function, which handles storing the user in the database as well as registering the user with Authy.

        In order to get a user set up for your application you will need their email, phone number and country code. We have fields for each of these on our sign up form.

        ユーザーを Authy に登録すると、そのユーザーの Authy ID をレスポンスから取得できます。これは、Authy でユーザーのアイデンティティを確認する方法となるため、非常に重要です。


              Next up, let's take a look at the login.

              Log in with OneTouch

              Authy OneTouchでログインする

              ユーザーがウェブサイトにログインしようとしたら、第 2 形式の識別をユーザーに求めます。まずは、OneTouch 検証を見てみましょう。

              OneTouch は以下のように機能します。

              • We attempt to send a OneTouch Approval Request to the user
              • ユーザー の OneTouch が有効になっている場合は、 success メッセージが返される
              • The user hits Approve in their Authy app
              • Authy makes a POST request to our app with an approved status
              • ユーザーをログインさせる


                    ユーザーがログインしたら、直ちに OneTouch でアイデンティティの検証を試みます。ユーザーが OneTouch デバイスを持っていない場合は代替の方法を検討しますが、試してみるまでは分かりません。

                    Authy lets us pass extra details with our OneTouch request including a message, a logo, and any other details we want to send. We could easily send any number of details by appending details[some_detail] to our POST request. You could imagine a scenario where we send a OneTouch request to approve a money transfer:

                    data = {
                        'api_key': client.api_key,
                        'message': "Request to send money to Jarod's vault",
                        'details[Request From]': 'Jarod',
                        'details[Amount Requested]': '1,000,000',
                        'details[Currency]': 'Galleons'

                          Once we send the request we update our user's authy_status based on the response. This lets us know which method Authy will try first to verify this request with our user. But first we have to register a OneTouch callback endpoint.



                          OneTouch リクエストの送信後にユーザーが何を行ったのかをアプリで認識するためには、コールバックエンドポイントを Authy に登録する必要があります。

                          Note: In order to verify that the request is coming from Authy we've written a decorator, @verify_authy_request, that will halt the request if we cannot verify that it actually came from Authy.

                          Here in our callback, we look up the user using the authy_id sent with the Authy POST request. In a production application we might use a websocket to let our client know that we received a response from Authy. For this version, we keep it simple and update the authy_status on the user. Our client-side code will check that field before completing the login.



                                Handle 2FA asynchronously

                                Handle Two-Factor Asynchronously


                                サーバーサイドで何が起こっているのかについてはすでに見てきましたので、次に JavaScript がそれらのサーバーエンドポイントとどのように連係しているのかを見てみましょう。

                                First we hijack the login form submit and pass the data to our sessions/create controller using Ajax. Depending on how that endpoint responds, we will either wait for a OneTouch response or ask the user to enter a token.

                                OneTouch レスポンスを予期している場合は、OneTouch ログインが承認または拒否されたことを確認するまで /login/status のポーリングを行います。


                                      Handle Two-Factor Asynchronously


                                      Now let's see how to handle the case where we receive a denied OneTouch response.

                                      How to handle exceptions

                                      Fall back to a Token

                                      This is the endpoint that our javascript is polling. It is waiting for the user's authy_status to be either approved or denied. If the user approves the OneTouch request, our JavaScript code from the previous step will redirect their browser to their account screen.

                                      If the OneTouch request was denied, we will ask the user to log in with a token instead.


                                            Handle Login Status


                                            Now let's see how to send a token to the user.

                                            Send a token

                                            Send a Token


                                            In the case where our user already has the Authy app but is not enabled for OneTouch, this same method will trigger a push notification that will be sent to their phone with a code inside the Authy app.

                                            The user will see a verification form.

                                            A POST request to this view validates the code our user enters. First, we grab the User model by the ID we stored in the session. Next, we use the Authy API to validate the code our user entered against the one Authy sent them.

                                            If the two match, our login process is complete! We mark the user's authy_status as approved and thank them for using two-factor authentication.


                                                  Verify users via Authy Token


                                                  これで終わりです。3 つの異なるメソッドと最新の Authy テクノロジーを使用して二要素認証を実装しました。



                                                  Twilio を使う Python 開発者であれば、他のチュートリアルもお楽しみください。

                                                  SMS・MMS 通知

                                                  e-mail よりも早く届き、ブロックされにくい テキストメッセージサービスはタイムリーに通知や警告に最適です。サーバー管理者に SMS・MMS で通知を送る方法を学びます。




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

                                                  Andrew Baker Agustin Camino Kelley Robinson Kat King
                                                  Rate this page:


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