【问题标题】:basic http authentication with cms pages in rails在 rails 中使用 cms 页面进行基本 http 身份验证
【发布时间】:2013-10-24 21:22:47
【问题描述】:

我使用的是 rails 4 和舒适的墨西哥沙发。我希望通过密码保护来保护一些 cms 页面。他们不需要非常安全。以下代码给了我一个未定义的方法错误:

module CmsPagesAuth

  def authenticate
    http_basic_authenticate_with name: "dhh", password: "secret"
  end
end

该方法是 ActionController::HttpAuthentication::Basic 的一部分 如何访问相关方法?还是有更好的方法来解决这个问题?提前感谢您提供任何建议、解决方案或见解。

【问题讨论】:

  • 您必须在控制器中执行此操作
  • application_controller.rb?
  • 是的,如果您希望将其应用于所有控制器。如果没有,将其添加到特定的控制器中
  • 我看到您阅读了有关此的 wiki 条目。凉爽的。但我认为您想使用authenticate_or_request_with_http_basic 方法apidock.com/rails/ActionController/HttpAuthentication/Basic/… 它基本上是默认身份验证cms 使用的实现:github.com/comfy/comfortable-mexican-sofa/blob/master/lib/… 如果您只想保护某些页面,只需在进行基本身份验证之前检查@cms_path.full_path。跨度>
  • @Grocery,谢谢。你的建议奏效了,我在正确的轨道上。我对您的建议的实施似乎与 CMS 管理员身份验证相冲突,因此我可能不得不使用其他形式的身份验证,但您的建议解决了一些问题。谢谢。

标签: ruby-on-rails http-authentication comfortable-mexican-sofa


【解决方案1】:
class StaticController < ApplicationController
   http_basic_authenticate_with name: "dhh", password: "secret", only: [your static actions]
end

【讨论】:

  • 谢谢 vimsha。那行得通。但是,我所有的 cms 页面似乎都由:CmsContentController#render_html 控制,所以我不确定如何排除某些页面。如果我没记错的话,CMS 似乎不再强调控制器的使用。
猜你喜欢
  • 1970-01-01
  • 2011-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-07
  • 2017-05-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多