Railsでユーザー認証を扱うより良い方法

Railsの認証といえば、ほとんどの開発者はDeviseを選びます。しかし、より多くのコントロールを得られる代替アプローチがあります:Authentication Zeroです。

Authentication Zeroは、アプリケーション内に直接認証コードを生成するジェネレーターです。認証をgemに抽象化するDeviseとは異なり、Authentication Zeroはあなたが所有しカスタマイズできるコードを提供します。

なぜAuthentication Zero?

  • 完全なコントロール - コードはgemに隠されず、あなたのアプリ内にある
  • 簡単にカスタマイズ - 認証フローのどの部分でも変更可能
  • 魔法なし - すべての行を読んで理解できる
  • モダンな機能 - パスワードレス、WebAuthnなどをサポート

はじめに

Gemfileに追加:

gem "authentication-zero"

そして生成:

rails generate authentication
rails db:migrate

これにより以下が作成されます:

  • セキュアパスワード付きのUserモデル
  • セッションコントローラー
  • パスワードリセット機能
  • メール確認
  • カスタマイズ可能なビュー

結果

あなたが所有するコードで完全な認証システムが手に入ります。2FAを追加したい?ログインフローを変更したい?ソーシャルログインを追加したい?コードはすぐそこにあります。

詳細はAuthentication Zeroリポジトリをご覧ください。