具有OmniAuth的臭名昭着的Nil对象错误

时间:2011-06-28 21:30:28

标签: ruby-on-rails omniauth

你可以在SO上看到这个错误:
Nil object error when using OmniAuth (which normally works)
OmniAuth / Rails - You have a nil object when you didn't expect it

我的OmniAuth策略存在同样的问题。我自己写了,并在Rails和Sinatra上进行了本地测试。两个实例都返回相同的错误,Sinatra显示更多有用的信息。

“当你没想到它时,你有一个零对象! 您可能期望ActiveRecord :: Base的实例。
在评估nil。[] =“

时发生错误

看起来幕后有些东西在我不理解的幕后。 Sinatra在跟踪中的最后评论是:

“set_cookie_header中的../ lib / rack / utils.rb!”在第194行:

case header["Set-Cookie"]
但是,我并不是在搞乱饼干。对于某些人来说,似乎这个问题随机消失,或者做一些简单的事情,因为清除缓存对某些人有效。这些技术都没有对我有用。有谁知道解决这个问题的尝试和真实的方法?您可以在此处查看项目的仓库:https://github.com/stevenhaddox/oa-casport谢谢!

编辑:经过深思熟虑后,我猜测OmniAuth不喜欢我的Rack中间件没有配置SSL的事实。有没有办法告诉OmniAuth不要期待SSL?

1 个答案:

答案 0 :(得分:2)

看起来你在request_phase结束时忘记了redirect(callback_path)。一旦你添加了它,我认为你将重新回到OmniAuth工作流程中,以恢复你的auth_hash。