gpt4 book ai didi

ruby-on-rails - 在 jail 长 json 参数不起作用

转载 作者:行者123 更新时间:2023-12-02 03:40:50 26 4
gpt4 key购买 nike

我正在研究 Rails JSON 网络服务。我正在使用 warden 进行身份验证,它在 html 格式下工作正常,但在 json 中它不起作用。因为传递的参数在 config/intializers/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

最佳答案

好吧,我也遇到了这个。这个 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

关于ruby-on-rails - 在 jail 长 json 参数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20209507/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com