やりたいこと
railsアプリケーションにて、deviseを用いた認証機能を制限したい。
例) サインアップ機能の廃止など...
導入方法は下記記事を参照
locomocosan.hatenablog.com
機能を制限する方法
deviseの標準機能を制限するには、app/models/user.rb
のファイルを変更必要がある。
class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable end
デフォルトで有効になっている機能とモジュールは下記となる。
モジュール | 機能 |
---|---|
database_authenticatable | パスワードの暗号化 |
registerable | サインアップ |
recoverable | パスワードリセット |
rememberable | クッキーにログイン情報を保持 |
validatable | バリデーション |
追加で使えるモジュールと機能については下記となる。
モジュール | 機能 |
---|---|
confirmable | メール認証 |
lockable | ロックアウト |
timeoutable | ユーザーセッションのタイムアウト |
trackable | ユーザーアクティビティをトラッキング |
omniauthable | 外部プロバイダーを利用した認証 |
もしサインアップ機能を廃止したい場合は、registerable
を削除することで
実装できる。
また、googleアカウントなどの外部のプロバイダーを利用した認証を行いたい
場合、omniauthableを有効にすることで実装が可能になる。(別途設定など必要)
感想
viewやコントローラーの編集、認証機能のカスタマイズなど
まだまだ奥が深そうなので、別の機会にまとめたい。
今回の内容が参考になったら幸いです。