1

ソーサリー ジェムに少し問題があります。アプリにログインすると、コントローラーは正常にログインし、別のページにリダイレクトします (ログイン資格情報が正しくないかのように、リダイレクトの代わりにログインページアクションがレンダリングされていることを確認できます)場所)。ただし、アプリがこのページを読み込もうとすると、Sorcery のrequires_loginメソッドは失敗し、current_userfalse が返されます (これがトリガーnot_authenticatedされ、フロント ページに戻ります)。

これは本番環境でのみ発生します。開発環境でサイトを実行すると、すべて正常に動作します。実行される他のすべてを削除しようとしましたがbefore_filters、それでも同じ問題が発生するため、そこには何もありません。

ログインは、次のコントローラー アクションによって処理されます (責任を負うものは何もないと思いますが、念のため):

# user_sessions_controller.rb
def create
  logout
  @user = login(params[:email], params[:password])
  if @user
    @user.assign_locale(params[:locale])
    flash[:success] = "Log in successful."
    if can? :read, Organisation
      redirect_to some_path
    else
      redirect_to another_path
    end
  else
    flash.now[:error] = "Unrecognised email/password combination"
    render "new"
  end
end
4

1 に答える 1

1

これは完全に私自身の作成の問題でした。私はsslなしで自分のマシンで本番環境をテストしていましたが、

secure: Rails.env.production?

これはsession_store、Sorcery に必要な Cookie が提供されていなかったことを意味します。

于 2013-04-29T02:08:35.513 に答える