railsチュートリアルで、以下の部分の理解が甘かったので、自分なりに解釈してみました。
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
user = User.find_by(email: params[:session][:email].downcase)
では、downcaseメソッドを使って、大文字を小文字にすべて変換させて、大文字小文字関係なく、メールアドレス自体が合っていたらokとしている(?)
入力されたメールアドレスから、Userモデルから該当するメールアドレスを持っているユーザーを検索して、見つけたらuserに代入する。
if user && user.authenticate(params[:session][:password])
は、もし該当するメールアドレスを持っているユーザーがいて、かつ入力されたパスワードが合っていたら、、、という意味ではないかと解釈しました。
独学の身なので、もし間違った解釈をしている、もっとこう考えた方がいい、という方がいらっしゃいましたら、、教えていただけると幸いです。