アプリで条件付きで SSL にリダイレクトしています。I User モデルと Admin モデル、両方とも で構成されていdevise_for
ます。私はrails_admin
Admin モデルと、Users モデル用の独自の CMS を使用しています。
には、 SSL if andにリダイレクトapplication_controller
する before filterがあります。check_ssl
user_signed_in? || controller_name == 'registrations' || controller_name == 'sessions'
!request.ssl?
ログを見てロジックを確認しました。
問題
- /admin にアクセスして RailsAdmin インターフェイスを取得しようとすると、ログインしていないことが検出され、正しくリダイレクトされ
/admins/sign_in
ます。 - SSL
before_filter
が実行され、現在 SSL ではないことがわかります。私のログ:ssl? is false and fullpath is /admins/sign_in
SSLを使用する必要がありますhttps://foo.com/login にリダイレクト SSL?true で、フルパスは /login です
/login
User
私のモデルではなく、私のモデルのログイン パスですAdmin
。
リダイレクト コードは文字通り次のとおり
redirect_to({:protocol => 'https'}, :flash => flash)
です。