我正在尝试调试在EC2 ELB后面有多个应用服务器失败的情况下与Google做oauth的问题。我认为这个问题与oauth后备存储未被共享的事实有关。我们现有的解决方案工作了2年多,然后在2天前突然开始失败,我不知道这是我的配置问题还是谷歌改变了一些东西。
我相信我必须使用像memcached这样的共享商店来解决问题。
这是我尝试在我的经典风格sinatra应用程序中这样做:
Sinatra::Application.use ::OmniAuth::Strategies::OpenID do
OpenID::Store::Memcache.new(Memcached.new('my_memcached_machine'))
end
不幸的是,这仍然没有解决问题。据我所知,OmniAuth永远不会对memcached做任何获取或设置请求。
在尝试使用经典风格的sinatra应用中的google进行身份验证时,这是让omniauth使用memcached的正确方法吗?
答案 0 :(得分:0)
我发现这是一种有效的方法,但我确信有更好的方法......
module Rack
class OpenID
def initialize(app, store = nil)
@app = app
@store = ::OpenID::Store::Memcache.new(OpenIDMemcachedManager.new('...'))
end
end
end