【问题标题】:In warden json parameters are not working在守望者 json 参数不起作用
【发布时间】:2013-11-26 05:53:14
【问题描述】:

我正在开发 Rails json 网络服务。我正在使用守望者进行身份验证,它在 html 格式下工作正常,但在 json 中它不起作用。因为传递的参数在 config/initializers/wrden.rb 文件中不起作用。下面是代码

配置/初始化器/看守。 rb

def authenticate!

  Rails.logger.info '!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
  Rails.logger.info params['emailID']
  user = User.find_by_emailID(params['emailID'])
  if user && user.authenticate(params['password'])
    success! user
  else
    fail "Invalid email or password"
  end

end

这是日志

Parameters: {"emailID"=>"xyz@gmail.com", "password"=>"123456", "session"=>{"emailID"=>"xyz@gmail.com", "password"=>"123456"}}

(0.2ms)  BEGIN

!!!!!!!!!!!!!!!!!!!!!!!!!!!!

nil

User Load (12.2ms)  SELECT "users".* FROM "users" WHERE "users"."emailID" IS **NULL** LIMIT 1

(0.3ms)  COMMIT

Completed   in 276ms

【问题讨论】:

    标签: ruby-on-rails json warden


    【解决方案1】:

    好吧,我也遇到了这个问题。这个 GitHub 线程为我修复了它:

    https://github.com/hassox/warden/issues/84

    基本上,告诉 Warden 使用 Rails 的请求对象,而不是默认使用的任何对象。您可以使用 rails-warden gem 或将其混入 Warden:

    module Warden::Mixins::Common
        def request
          @request ||= ActionDispatch::Request.new(@env)
        end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-25
      • 2017-01-05
      • 1970-01-01
      相关资源
      最近更新 更多