我在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。确保哈希中没有域键