6ft*_*Dan 2 rack ruby-on-rails-4
我想要一个密码网站,就像Rack的Basic AUTH一样
/config.ru
use Rack::Auth::Basic, "Restricted Area" do |username, password|
[username, password] == ['admin', 'admin']
end
run Rails.application
Run Code Online (Sandbox Code Playgroud)
但我不希望它阻止路径 /API和/mailgun/incoming_email密码访问.我可以在Rack中完成此操作吗?或者我应该在routes.rb中实现一个范围,几乎所有资源都在Rack(输入一次)密码后面?
为了记录我在网站内使用Devise ......这是独立的.我之前需要一个站点密码.
我想密码保护只有根路径/和/visitors机密像密码.我已经看过Rails routes.rb文件中使用的东西,之前有一个需要密码的lambda条件.我现在没有运气找到这些信息.
我的网站已经将未经身份验证的Devise用户重定向到/users/sign_in.所以我只需要密码保护/,/users/sign_in以及/users/sign_up.这就是我做到的.
config.ru
class RootSiteAuth < Rack::Auth::Basic
def call(env)
request = Rack::Request.new(env)
if ['/', '/users/sign_in', '/users/sign_up'].include? request.path
super
else
@app.call(env)
end
end
end
use RootSiteAuth, "Restricted Area" do |username, password|
[username, password] == ['admin', 'admin']
end
run Rails.application
Run Code Online (Sandbox Code Playgroud)
它有效.每个控制器都before_filter :authenticate_user!重定向到机架密码页面.身份验证后,我们很高兴.没有过滤器的任何东西都允许按计划进行外部访问 ^ _ ^
| 归档时间: |
|
| 查看次数: |
1056 次 |
| 最近记录: |