Ruby on rails Rails 3.0.3和InvalidAuthenticationToken
我只是从一些用户那里得到一个InvalidAuthenticationToken异常。当我检查错误时,我可以看到请求已将Ruby on rails Rails 3.0.3和InvalidAuthenticationToken,ruby-on-rails,ruby-on-rails-3,rack,middleware,Ruby On Rails,Ruby On Rails 3,Rack,Middleware,我只是从一些用户那里得到一个InvalidAuthenticationToken异常。当我检查错误时,我可以看到请求已将“\r\n”添加到authenticity\u token参数中(即:“authenticity\u token”=>“YfYr7bzy1MFzNHPvrSOIdrYuuAG3SHZy/OBJyV3yUSg=\r\n”) 我对浏览器一无所知,只知道它是IE7 我感觉是他们的防火墙对请求做了些什么。我认为一个聪明的解决方案是创建一个机架中间件,如果存在断线,它可以删除断线。有人能
“\r\n”
添加到authenticity\u token参数中(即:“authenticity\u token”=>“YfYr7bzy1MFzNHPvrSOIdrYuuAG3SHZy/OBJyV3yUSg=\r\n”
)
我对浏览器一无所知,只知道它是IE7
我感觉是他们的防火墙对请求做了些什么。我认为一个聪明的解决方案是创建一个机架中间件,如果存在断线,它可以删除断线。有人能告诉我怎么做吗?(我没有工作经验)
问候,
雅各布我已经调查过了,我找不到解决办法。它不是特别的IE或IE7。我最终制作了以下中间件:
class AuthenticityTokenFix
def initialize(app)
@app=app
end
def call(env)
if env["rack.request.form_hash"] && env["rack.request.form_hash"]["authenticity_token"]
env["rack.request.form_hash"]["authenticity_token"]=env["rack.request.form_hash"]["authenticity_token"].gsub("\r\n",'')
end
@app.call(env)
end
end
这就解决了问题。我已经调查过了,但找不到解决办法。它不是特别的IE或IE7。我最终制作了以下中间件:
class AuthenticityTokenFix
def initialize(app)
@app=app
end
def call(env)
if env["rack.request.form_hash"] && env["rack.request.form_hash"]["authenticity_token"]
env["rack.request.form_hash"]["authenticity_token"]=env["rack.request.form_hash"]["authenticity_token"].gsub("\r\n",'')
end
@app.call(env)
end
end
这就解决了问题。我没有答案,但我以前读过IE和真伪令牌的一般问题。在你得到答案之前,我建议你多搜索网页和邮件列表。好的,谢谢你的提示。我什么也没做,只是在寻找答案,出于某种原因,我什么也没找到。我没有答案,但我以前读过IE和真伪令牌的一般问题。在你得到答案之前,我建议你多搜索网页和邮件列表。好的,谢谢你的提示。我什么也没做,只是在寻找答案,出于某种原因,我什么也没找到。