在Heroku上使用自定义域的OmniAuth会导致应用程序错误



我在Heroku上有一个应用程序,它使用omniauth并在我访问myapplication.heroku.com/auth/open_id时正确地进行身份验证,输入我的google端点,并获得重定向。

然而,当我访问myapplication.com时,使用heroku自定义域设置并为每个其他url工作,我从heroku获得Application Error后,从谷歌重定向回来(我没有尝试过其他openid提供商)。

我有hoptoad设置,它没有向我发送任何关于特定错误的通知(可能是因为omniauth是中间件)。在heroku logs中,除了在url上有一个[nginx] GET请求之外,什么也没有显示。

这可能不重要,但这是一个rails应用程序。

localhost生产测试工作正常

想法?

我不确定这是否解决了你的问题,但我在我的应用程序(OAuth与Facebook, Rails, Heroku)上遇到了类似的问题。原来问题是由下面这行引起的:

session["devise.facebook_data"] = env["omniauth.auth"]

(在会话中存储OAuth数据,以防用户还没有帐户,必须完成注册表单才能持久化)

这导致ActionDispatch::Cookies::CookieOverflow(也没有被Hoptoad/Airbrake报告)对于一些用户的omniauth.auth哈希值太大而无法存储在会话cookie中。因此,在将哈希保存到会话之前,我通过预处理哈希并丢弃所有不需要的东西来解决这个问题。也许你的病和这个有关?

我也遇到过同样的问题。

myurl.com导致502错误网关,而。herokuapp.com工作正常。

I had set

use Rack::Session::Cookie

启用会话cookie,但由于某种原因,Heroku的nnix代理不喜欢这样。当我把它改成:

use Rack::Session::Cookie, :key => 'rack.session', :path => '/', :expire_after => 14400, :secret => 'change_me'

ie。确保哈希中没有域键

最新更新