yel*_*ign 2 ssl ruby-on-rails-3
我正在运行一个Rails 3.1.4应用程序,需要让一些页面使用force_ssl,但其他人我不想拥有SSL.是否与force_ssl相反,如force_http?问题是我有一些页面不需要是SSL,它们包含我无法使用https接收的元素(因此用户从浏览器中获取不安全的错误).
会发生什么事情,当有人进入force_ssl页面时,它工作正常,但是当他们转到其他不是force_ssl的页面时,他们会从浏览器收到不安全的页面错误,因为https仍然存在.因此,我想强制我无法使元素https的页面避免使用SSL(即强制它回到http).
先感谢您.
好的,我找到了一种似乎对我有用的方法:
在我的会话控制器中我添加了这个:
force_ssl :only => [:new, :create]
Run Code Online (Sandbox Code Playgroud)
因此,只有那两个动作才能通过SSL调用.现在,用户成功登录后,页面将重定向到非SSL连接.
至于强制页面为非SSL,请尝试以下问题:Rails 3.1强制常规HTTP,使用before_filter查找Joost的答案.
这是他发布的内容:
class ApplicationController < ActionController::Base
before_filter do
if request.ssl && Rails.env.production?
redirect_to :protocol => 'http://', :status => :moved_permanently
end
end
end
Run Code Online (Sandbox Code Playgroud)
免责声明:上面的代码不是我的,我从链接中的问题复制了它,只是为了方便起见.请访问上面的链接,在原始背景下查看.
另外,关于强制非SSL,我不确定这是个好主意.如果用户请求SSL连接并且您拥有证书,为什么不给它们?我同意SSL确实给浏览器带来了更大的压力,但是有些人总是喜欢在SSL上冲浪.如果您有一些代码不能通过SSL工作,那么这是强制非SSL的正当理由.
干杯.
| 归档时间: |
|
| 查看次数: |
2049 次 |
| 最近记录: |