Deviseを使っているRailsアプリに2段階認証を入れる機会があった。 調べてみると、devise-two-factorがよく使われているようだ。 GitLabもこのgemを組み込んでいる。 このgem、嬉しいことにdemoアプリまで用意してくれている。 ただし、ちょっと一般的な挙動とは違う…。 おそらく機能を紹介するために一番シンプルな構成にしているのだとは思うけど、 このまま導入するのはちょっと厳しい。 ID/PASS/認証コードを一度に入力するようになっていたり、 2段階認証有効化ボタンを押すと問答無用で有効化されたり。 そこで、Deviseを使ったRailsアプリに一般的な挙動の2段階認証を導入する過程を書いていく。 実装にあたっては、GitLabのコードを参考にした。 目指すところ ID/PASSと認証コードの入力を2段階に 「ID/PASSを入力 -> 認証コードを入力」の