ふと、devise以外にログイン機能を実装する方法ってあるだろうか?と気になって調べてみたら、あるんですね!
備忘録も兼ねて残しておきます。
目次
DeviseとSorceryの違い
ググった程度の知識なのでご容赦ください。
Devise
コマンド1つでviewまで設定してくれる、オールインワン認証gem。
ただし、色々なファイルが同時生成(中には現状の開発では不要であるファイルも)されるため、カスタマイズはしにくい。
Sorcery
必要最低限な認証機能を搭載。カスタマイズ性は高いが、コードを自分で書く必要性はある。
また、Deviseほど動作が重くならない点は利点。
Deviseに比べ、情報が少ない。(ググったら7年前の記事とか普通に出てくる)
Rails Sorcery 導入
まずは、gemファイルに下記を記述。
gem 'sorcery'
コマンドで下記を実行。
bundle install
実行後
rails g sorcery:install
これにより、モデルとマイグレーションファイル、configが生成。
マイグレーションファイルにバリデーションを設定
必要があれば、マイグレーションファイルにバリデーションを設定。
問題がなければ、下記を実行。
rails db:migrate
独自のメソッド
Sorceryには、独自のメソッドも用意されているので、下記のGitHubページから確認してみてください。
deviseでも使うような似通ったものもあります。
GitHub – Sorcery/sorcery: Magical Authentication
Magical Authentication. Contribute to Sorcery/sorcery development by creating an account on GitHub.