0

アプリで条件付きで SSL にリダイレクトしています。I User モデルと Admin モデル、両方とも で構成されていdevise_forます。私はrails_adminAdmin モデルと、Users モデル用の独自の CMS を使用しています。

には、 SSL if andにリダイレクトapplication_controllerする before filterがあります。check_ssluser_signed_in? || controller_name == 'registrations' || controller_name == 'sessions'!request.ssl?

ログを見てロジックを確認しました。

問題

  • /admin にアクセスして RailsAdmin インターフェイスを取得しようとすると、ログインしていないことが検出され、正しくリダイレ​​クトされ/admins/sign_inます。
  • SSLbefore_filterが実行され、現在 SSL ではないことがわかります。私のログ:
    ssl? is false and fullpath is /admins/sign_in
    SSLを使用する必要がありますhttps://foo.com/login
    にリダイレクト
    SSL?true で、フルパスは /login です
    

/loginUser私のモデルではなく、私のモデルのログイン パスですAdmin
リダイレクト コードは文字通り次のとおり redirect_to({:protocol => 'https'}, :flash => flash)
です。

4

1 に答える 1

0

これを正しく機能させるには、リダイレクトURLを手動で作成する必要がありました。

  "#{protocol}://#{host}#{request.fullpath}"
于 2012-12-07T16:37:33.417 に答える