2020/07/22MakioID、パスワードによるサインインだけでは非常に脆弱で、今はTwitter、Facebook等のSNS、グーグル、アマゾン、マイクロソフトのアカウントなどが二段階認証を取り入れれいます。rqrcode及びグーグル認証システムによって二段階認証を実装する仕方を、段階を追って解説します。ユーザーにとって、グーグル認証システムはアンドロイドでもアイフォーンで利用可能ですし、テキストで携帯に送られるOTPによる二段階認証よりも実装しやすいと思います。gemをインストールまずは必要なgemを追加します。gemによって作成されるusers_controller.rbに2つの機能を追加します。二段階認証を有効化するページの対応。gemによって作られたQRコードを表示します。このQRコードをグーグル認証システムで読むことになります。activate_2faがその実装ですユーザーが二段階認証コード、つまりワンタイムパスワード(OTP)を送った時に、有効化のプロセスの対応。よって作られるQRコードを表示するためのページです。ユーザーが、このQRコードをグーグル認証システムで読み込んでワンタイムパスワード(OTP)を得られます。@svgを読み込んでQRコードを表示させます。gemのsessions_controller.rbのアップデートユーザーが二段階認証をセットアップ完了後は、サインインプロセスは以下2段階となります。IDとパスワードによる承認グーグル承認システムによるワンタイムパスワードによる承認このプロセスに対応するようにsessions_controller.rbをアップデートします。createのオーバーライトID、パスワードの承認が行われた後の対応ワンタイムパスワードを入力した後の対応ワンタイムパスワードの入力失敗は5回までそれぞれのプロセスで非承認のときはサインインページに転送ワンタイムパスワードを入力するページワンタイムパスワードを入力ページのテンプレート。ユーザーのメールアドレスを隠しフィールドで使っています。最後にdeviseによる二段階認証を実装すると言っているgemを色々と試したのですが、どれも上手くいきませんでした。ActiveModel::Otpを使って、根本的に対応することで上手くいきました。連携でしたが、ここをGemを使ってあれこれ出てくるエラーを直すより、自分でロジックを組んだほうが結局早かったです。Railsで作られています。データサイエンティストとして転職を成功させる方法。投稿記事コンペティションデータサイエンティスト・データサイエンス職よりデータエンジニアでの転職の方が手堅い?未経験者がデータエンジニアになる方法を教えます。