SorceryのGitHubに書いてあることをまとめました。
Coreのものだけです。実際の使用法、活用例などを挙げているので参考になればと思います。
公式GitHubではメソッド名をクリックすると定義のページに飛びますので、詳しいコードはそちらをご覧ください。
require_login
ログインをしていないユーザーをアクション単位で弾く。
アクセスしようとしたURLをセッションに格納し、not_authenticated
を実行するメソッド。
以下のようにbefore_action
で指定する。
|
|
アクションごとに変える場合は、only: :action
を付ける。
アクション内の分岐など、もっと細かい単位で弾きたい場合は後述のlogged_in?
を使う。
not_authenticated
先ほどのrequire_login
内で、このメソッドも実行される。
デフォルトではredirect_to root_path
(自動的にルートに飛ばされる)と定義されているが、カスタマイズしたい場合はapplication_controller
で上書きをする。
|
|
auto_login(user)
その名の通りオートログイン。メールアドレスやパスワードを使わずuser
としてログインする。
想定される使い方としては、以下のようなものが挙げられる。
ユーザー登録後の自動ログイン
|
|
ゲストユーザーログイン
|
|
開発環境でのログイン
|
|
|
|
「/login_as/1
などにアクセスすると自動的にそのユーザーとしてログインする」ので、if Rails.env.development?
は必ず付ける。
current_user
きっと一番よく使う。
現在ログイン中のuserを返す。コントローラ、ビューで使える。
logged_in?
現在ログイン中かどうか、true or falseで返す。コントローラ、ビューで使える。
ログインしているかどうかによって場合分けをしたいときに使うことが多い。
<% if logged_in? %>
<%= link_to 'プロフィール', user_url(current_user) %>
<% else %>
<%= link_to 'ログイン', login_url %>
<% end %>
redirect_back_or_to(dafault_url, flash_hash = {})
ログインのアクションで使う。
require_login
のときにセッションに格納されたURLまたはデフォルトのURLにリダイレクトする。
flash_hash
はデフォルトでsuccess, dangerにも対応しています。
|
|