open_id_authentication – “OpenIdAuthentication.store为零。 使用内存存储。“问题
我正在尝试使open_id_authentication插件正常工作。
最初是用authlogic做的但是放弃了,因为感觉更麻烦的是帮助。
问题是我得到OpenIdAuthentication.store is nil. Using in-memory store.
OpenIdAuthentication.store is nil. Using in-memory store.
日志中的警告,阻止正确地validation用户。
这是日志片段:
Processing UserSessionsController#create (for 127.0.0.1 at 2010-04-21 23:58:38) [POST] Parameters: {"commit"=>"Sign in", "authenticity_token"=>"MSPc+VMgsQZ/w7vsb2OiE0azsF1QmphZqfnS6cPRD/U=", "openid_identifier"=>"http://myopenid.com"} Completed in 12ms (View: 1, DB: 0) | 401 Unauthorized [http://localhost/user_session] Generated checkid_setup request to http://www.myopenid.com/server with assocication {HMAC-SHA1}{4bcf0490}{MN9AXg==} OpenIdAuthentication.store is nil. Using in-memory store. Error attempting to use stored discovery information: OpenID::TypeURIMismatch Attempting discovery to verify endpoint Performing discovery on http://xxx.myopenid.com/ Using 'check_authentication' with http://www.myopenid.com/server
我不确定我要做些什么才能解决这个问题。 可能将存储设置为数据库(我有OpenID迁移)。 还不确定我是否真的需要数据库来执行OpenID身份validation。
原始项目(分支)在这里,所以你可以仔细看看。
会对此表示赞赏。
谢谢,
德米特里。
我遇到了与最新的open_id插件和内存存储器类似的问题。 一些OpenID站点可以工作,但大多数不会。 MemoryStore中的某些东西打破了如何进行身份validation。 切换到使用文件存储对我来说很好。
我在里面创建了一个名为config/initializers/openid.rb
:
OpenIdAuthentication.store = :file
重新启动了应用程序,我尝试的每个openId URL都开始工作了。
为什么文件存储工作时内存存储没有,我无法回答。 我只知道这对我来说是固定的。