加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – Rails – 401当我在生产中访问操作时未经授

发布时间:2020-12-17 02:05:20 所属栏目:百科 来源:网络整理
导读:我正在使用 Ruby On Rails 3.0.9,一切都在开发环境中运行良好.当我切换到Production env,或者我将其上传到我们的服务器时,登录后我将被带回同一个登录页面.当我检查日志时,我可以看到以下内容: Started POST "/users/login" for 127.0.0.1 at Thu Oct 03 16
我正在使用 Ruby On Rails 3.0.9,一切都在开发环境中运行良好.当我切换到Production env,或者我将其上传到我们的服务器时,登录后我将被带回同一个登录页面.当我检查日志时,我可以看到以下内容:

Started POST "/users/login" for 127.0.0.1 at Thu Oct 03 16:48:13 -0300 2013
  Processing by UserSessionsController#create as HTML
  Parameters: {"user"=>{"password"=>"[FILTERED]","login"=>"demo_admin"},"utf8"=>"?","authenticity_token"=>"+7AEoVXZ9XiagEymVUnOhFHnck4rgDu883E/ySMlCxQ="}
Redirected to http://localhost:3000/admin
Completed 302 Found in 111ms


Started GET "/admin" for 127.0.0.1 at Thu Oct 03 16:48:13 -0300 2013
  Processing by Admin::DashboardController#index as HTML
Completed 401 Unauthorized in 1ms

我正在使用authorization_rules文件来管理访问,但我在Dev env上没有问题,正如我之前所说的那样.

如果我在admin / dashboard #index操作中放置一个断点,它将不会被执行,因为它没有到达.它打破了httpserver文件(我一步一步地调试它),但我无法理解为什么它适用于Dev而不是Prod env.

请帮忙.

谢谢,
布赖恩

UPDATE

我想提一下,在我的ApplicationController中,有一个名为check_plan_features的before_filter,它要求的第一件事是除非current_user.blank? #redirects to Admin部分.

我注意到在使用Devise登录后,current_user具有用户的值,但是在重定向到admin部分后,它返回到同一个过滤器,这次,current_user为null.因此,我认为,在尝试访问Admin部分后,用户的会话以某种方式被销毁.但是,由于这只发生在生产环境中,我仍然想知道可能是什么.

解决方法

我只是遇到了这个问题(使用rails 4和设计3).

解决方案是在config / initializers / session_store.rb文件中添加域声明,如下所示:

YourAppName::Application.config.session_store :cookie_store,key: '_your_session',domain: {
  production: 'production_domain',development: 'development_domain'
}.fetch(Rails.env.to_sym,:all)

尽管由于向应用程序添加子域而最初更改这一点很重要.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读