Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9356

TwilioのAuthyの2FA(電話番号認証)機能をnode.jsから使う

$
0
0

呼び出し方は本家のAPI使う方法や先人のnpmパッケージ使う方法とかあるが、今回は先人のnpmパッケージを利用してみる。

ちなみにTwilioでは2つの電話番号認証機能があり、どちらを使うかはケースバーケースのようです。

Authy API

Authyが提供するAPIはSMS送信以外での2FAに対応していますが、今回はSMS送信による認証を試してみます。

準備

Twilioに登録

Twilioに登録して利用できるようにしておく。無料枠もあるがすぐに消費してしまいます・・・。

Authyのプロジェクト作成とAPIの取得

左メニューからAuthyを選択肢、新規プロジェクトを作成、設定にてPRODUCTION API KEYを取得します。

APIの機能(利用の流れ)

利用方法は簡単で、主な利用APIは下記の2つ。

  • verification_start()でSMS経由でCode送信
  • verification_check()でCode検証

あとは、

  • verification_status()というAPIで状態を確認

することもできる。

実装

まず、モジュールをインストールします。

npm install--save authy

で、実装。

以下のコードではめんどくさいの一気に記述していますが1)と2)は同時に実行することはできません。
まず、2)をコメントアウトして実行し、SMSが届くか見ましょう。そして、1)をコメントアウトして、Codeを設定した状態で2)をコメントインして実行します。

//取得したAPIで初期化varauthy=require('authy')('MswmXqxxxxxxxxxxxxxxxxxxxxxxxxxxx');constphoneNumber='9012345678';constcountryCode='81';constverificationCode='000000';//受け取ったものを入れる//1)smsでcode送信authy.phones().verification_start(phoneNumber,countryCode,{via:'sms',locale:'ja',code_length:'6'},(err,res)=>{if(err)throwerr;console.log(res);});//2)受け取ったコード認証authy.phones().verification_check(phoneNumber,countryCode,verificationCode,(err,res)=>{if(err)throwerr;console.log(res);});//3)ステータス確認authy.phones().verification_status(phoneNumber,countryCode,(err,res)=>{if(err)throwerr;console.log(res);})

スムーズにうまく動きました。

メモ

  • 一度認証しても、再度送信するとstatusはpendingになるようです(まあ、当然ですが)。
  • 料金は国内3キャリア向けに$0.08円(まあ10円)。
  • あくまで電話番号の実在確認なので、会員管理システム等は別途用意しておく必要がある。
  • 専門サービスだけあって090と記述しても送信してくれる。090-1234-5678とハイフンがあっても処理してくれる。

Viewing all articles
Browse latest Browse all 9356

Trending Articles