在设计 SSL 控制器后返回 HTTP

发布于 12-11 14:34 字数 543 浏览 2 评论 0原文

我试图在 Devise 操作之后将请求重定向到 HTTP。我不确定我想做的是否是正确/最好的方法,所以我愿意接受建议。这是我所拥有的,它因“重定向循环”而失败,这是可以理解的。现在我只需要弄清楚如何在重定向后终止请求。

这是否值得追求,或者有更好的方法吗?

class ApplicationController < ActionController::Base
  protect_from_forgery
  before_filter :https_only_for_devise

  @@ssl_controllers = ['devise/registrations',
                        'devise/sessions']

  def https_only_for_devise
    if (@@ssl_controllers.index(params[:controller]) == nil)
      redirect_to :protocol => 'http://'
    end
  end
end

I am trying to redirect requests to HTTP after Devise actions. I'm not sure if what I'm trying to do is the right/best way so I'm open to suggestion. Here's what I have and it's failing with a "redirect loop", which is understandable. Now I just need to figure out how to terminate the request after the redirect.

Is this worth pursuing, or is there a better way?

class ApplicationController < ActionController::Base
  protect_from_forgery
  before_filter :https_only_for_devise

  @@ssl_controllers = ['devise/registrations',
                        'devise/sessions']

  def https_only_for_devise
    if (@@ssl_controllers.index(params[:controller]) == nil)
      redirect_to :protocol => 'http://'
    end
  end
end

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

天邊彩虹2024-12-18 14:34:08

它成功了!将方法的内容更改为:

  def https_only_for_devise
    if (@@ssl_controllers.index(params[:controller]) == nil && request.ssl?)
      redirect_to :protocol => 'http://'
    end
  end

现在我已经考虑过了,这非常明显......

And it worked! Changed the content of the method to:

  def https_only_for_devise
    if (@@ssl_controllers.index(params[:controller]) == nil && request.ssl?)
      redirect_to :protocol => 'http://'
    end
  end

Incredibly obvious now that I've thought about it...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文