フォーム読み込み中
ご覧いただきありがとうございます。Twilioプロダクトチームです。
様々なサイトでアカウントを作成するときの電話番号の存在確認(2要素認証)として、SMSや電話で認証することはよくありますよね。Twilio Verifyは、Twilioが提供する電話番号認証サービスで、ユーザーの電話番号を確認するために使われます。
本記事ではTwilio VerifyとNode.jsを利用して2要素認証の実装方法を解説します。
Twilioは電話やSMS・ビデオ・チャットなど世の中にあるさまざまなコミュニケーションチャネルをWeb・モバイルアプリケーションへ組み込むクラウドコミュニケーションプラットフォームです。従量課金制のため、コンタクトセンターや新規ビジネスをスモールスタートで構築することが可能です。
Twilio Verifyは電話やSMS等を使って認証ができるAPIです。2要素認証に必要なパスコードの生成、送信、照合をワンストップで処理してくれます。
近年不正アクセスや個人情報の漏洩による被害が増加傾向にあります。こういった被害を防ぐために注目されているのが2要素認証であり、Twilio Verifyを使えば簡単に実装することができます。
今回はSMSを利用した2要素認証のサンプルコードを紹介します。
Twilio Verifyを利用する為には、まずTwilioアカウントを作成する必要があります。
ソフトバンク経由でアカウントを開設する場合はこちらからお問い合わせください。
1.アカウント作成後、Twilioコンソールにログインします。
2.Verifyにアクセスし、「Services」から「Create new」ボタンをクリックします。
3.「Friendly name」に適当な名前を付けて「Authorize the use of friendly name.」にチェックマークをつけます。「Verification channels」からSMSを有効にして「continue」ボタンをクリックします。
4.「continue」ボタンをクリックします。
5.「Verify Events Subscribed service」をオンにし、「Save」ボタンをクリックします。
アカウントSIDとAuthTokenを利用するので、メモに控えておいてください。Account Dashboard内から確認できます。
1.Homebrew経由でCLIをインストールする場合は下記コマンドを使用します。
brew tap twilio/brew && brew install twilio
npm経由でCLIをインストールする場合は下記コマンドを使用します。Node.jsがインストールされていない場合は、最初にNodeをインストールしてください。
npm install -g twilio-cli
2.プロファイルを割り当てます。
twilio profiles:add
3.以下の質問が出るので答えます。
| 質問文 | 回答 |
|---|---|
| ? Shorthand identifier for your profiles: | プロファイルを識別するための名前(例:Account01) |
| ? The Account SID for your Twilio Project | 紐付けたいアカウントのAccountSid(ACから始まる文字列)
|
| ? Your Twilio Auth Token for your Twilio Project: | 上記AccountSidに対するAuthToken |
4.プロファイルの確認をします。
twilio profiles:list
今回はNode.jsでサンプルコードを書いていきます。
1.エディタに以下のコードを貼り付けます。
const accountSid = 'アカウントSID';//自身のアカウントSID
const authToken = 'AuthToken';//自身のAuthToken
const client = require('twilio')(accountSid, authToken);
verification = client.verify.v2
.services('VerifyサービスSID')//作成したService SID
.verifications.create({channel: "sms",to: "+810000000000"});
上記は認証コードをSMSで送信するサンプルコードです。
送り先の電話番号は国際電話識別番号から始まる形式で入力します。(080なら+8180、090なら+8190など)
送り先番号にSMSが受信されたら成功です。
今回はnode.jsでサンプルコードを書いていきます。
1.エディタに以下のコードを貼り付けます。
const accountSid = 'アカウントSID';//自身のアカウントSID
const authToken = 'AuthToken';//自身のAuthToken
const client = require('twilio')(accountSid, authToken);
client.verify.v2
.services("VerifyサービスSID") //作成したService SID
.verificationChecks.create({to: "+810000000000", code: "123456"})
.then(verification => {
console.log(verification.status);
});
ログにapproved が表示されたら認証成功です。
Twilio Verifyを使えば簡単に2要素認証が実装できます。今回はSMS認証の方法を紹介しましたが、電話を利用した認証も可能です。
TwilioのWebサイトにVerifyの開発者ドキュメントや開発者ブログにVerifyに関する記事も載っているので、参考にしながら実装してみてください。今後もTwilioの活用方法や最新情報を発信していきます。
Twilioは、電話、SMS、ビデオ、チャットなど、多様化するお客さまとのコミュニケーションチャネルを1つにつなぐクラウドコミュニケーションAPIです。
条件に該当するページがございません