gpt4 book ai didi

ruby-on-rails - 当我尝试使用 Omniauth + Google Apps 时,为什么 heroku 超时?

转载 作者:行者123 更新时间:2023-12-05 00:37:31 25 4
gpt4 key购买 nike

我正在尝试使用 Omniauth 提供针对 Google Apps 的简单、基本的身份验证。在本地一切正常(即使在生产模式下),但在 Heroku 上我得到以下信息:

app[web.1]: Started GET "/auth/admin" for 24.155.228.161 at Fri Jul 22 15:10:26 -0700 2011
heroku[router]: Error H12 (Request timeout) -> GET example.com/auth/admin dyno=web.1 queue= wait= service=30000ms status=503 bytes=
heroku[router]: Error H12 (Request timeout) -> GET example.com/ dyno=web.1 queue= wait= service=30000ms status=503 bytes=0
app[web.1]: Generated checkid_setup request to https://www.google.com/a/example.com/o8/ud?be=o8 with assocication AOQobUegRUNfEpz1JOO2bZe0zXrjkdIvdsjpVyCh3rtbL_s-GSfhQ_zY

我的设置如下;
# initializers/omniauth.rb
require "openid/fetchers"
OpenID.fetcher.ca_file = "#{Rails.root}/cacert.crt"

require 'openid/store/filesystem'

Rails.application.config.middleware.use OmniAuth::Builder do
provider :google_apps, OpenID::Store::Filesystem.new('./tmp')
use OmniAuth::Strategies::GoogleApps, OpenID::Store::Filesystem.new('./tmp'), :name => 'admin', :domain => 'bcarc.com' #, :client_options => {:ssl => {:ca_file => './cacert.crt'}}
end

我尝试切换到 memcached,但我无法获得 memcached-northscaledalli工作,无论如何我已经确认随机数被保存在 ./tmp 中。正确,所以我不认为这是问题所在。

我收到了关于 CA 证书的错误,但是将证书文件指定给 fetcher 解决了这个问题,我仍然遇到超时。

有什么建议?

更新:
我已经将其追溯到 OmniAuth 的回调处理程序。请求被发送到 Google Apps,但在回调 Controller 有机会执行任何操作之前回调超时。

最佳答案

好的,所以经过多次梳理之后,看起来这是 OmniAuth 处理 Google Apps URI 的问题。我最终使用了普通的 google OpenID 端点,然后手动验证了我的 Controller 中的域。对于任何感兴趣的人,我的代码现在看起来像这样:

require "openid/fetchers"
OpenID.fetcher.ca_file = "#{Rails.root}/cacert.crt"

require 'openid/store/filesystem'

Rails.application.config.middleware.use OmniAuth::Builder do
provider :openid, OpenID::Store::Filesystem.new('./tmp')

use OmniAuth::Strategies::OpenID, OpenID::Store::Filesystem.new('./tmp'), :name => 'openid', :identifier => 'https://www.google.com/accounts/o8/id'
end

前两行消除了 Heroku 抛出的一些 SSL 警告。我正在使用 ./tmp用于文件存储,这工作得很好。在我的 Controller 中,我有一个 if/then 子句,用于在经过身份验证的电子邮件中检查我的域并重定向到一个页面,告诉用户选择正确的帐户。

这不是一个想法解决方案,但我无法使用特定于应用程序的 OpenID 标识符使任何工作正常工作。

关于ruby-on-rails - 当我尝试使用 Omniauth + Google Apps 时,为什么 heroku 超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6796758/

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