2017-06-25 5 views
3

私はdeviseを使ってレールapi認証を行っていますが、deviseのsign_inが私たちのために何をしているのかを正しく理解できませんでした。deviseのsign_inは何ですか

ユーザーにサインインするための作成メソッドを持つセッションコントローラがあります。 rubydocで

def create 
user_email = params[:session][:email] 
user_password = params[:session][:password] 
user = user_email.present? && User.find_by(email: user_email) 
if user.valid_password?(user_password) 
    sign_in user, store: false /* exactly this line */ 
    render json: user, status: 200, location: [:api, user] 
else 
    render json: { errors: "Invalid email or password" }, status: 422 
end 
end 

その説明は、すでに認証されたユーザーで、この

サインオンのように書かれています。このヘルパーは、サインアップ後にユーザーをログインさせるのに便利です。 sign_inに与えられたすべてのオプションは、監視員のset_userメソッドに渡されます。

しかし、それは私には分かりません。ありがとう。

答えて

1

sign_inは、自分が作成またはロード/認証したオブジェクトが既に存在し、残りの現在および今後のリクエストの認証済みユーザーとしてセッションに保存したい場合に使用します。

source code for the default Devise SessionsControllerを見ると、sign_inを使用してユーザーにログインすることがわかります。

Deviseはwarden以上のレイヤーなので、このレベルの機能を理解するにはdocumentationをご覧ください。あなたが状態を引用したDeviseのドキュメントのように、sign_inはワーデンからset_userメソッドを呼び出すだけです。 Deviseが上に加えるものは、複数のスコープやさまざまな指導者認証戦略を扱う能力のような便利さです。

+0

私がここで理解しているのは、認証ユーザーとしてセッション内にユーザーオブジェクトを格納するsign_inです。 –

+0

sign_inメソッドはcurrent_userをレールで利用できますか? –

+0

storeの意味は何ですか:falseここでは –

関連する問題