rails3 authlogic-connect未知属性:oauth_provider

时间:2011-03-30 22:49:09

标签: ruby-on-rails-3 authlogic

我正在尝试使用authlogic-connect插件为我的网络应用添加oauth支持,但我收到了错误:

unknown attribute: oauth_provider

调用UsersController #create时。当我尝试从传入的参数创建新用户时失败:

@user = User.new(params[:user])

果然,参数包括这个属性:

Parameters:

{"utf8"=>"✓",
 "authenticity_token"=>"lHX2BTFTd5xITTfY/X8A9R3vca3YaRuHFoWdqy8ZPik=",
 "user"=>{"oauth_provider"=>"linkedin"},
 "commit"=>"LinkIn"}

从文档中,我认为这就是你应该做的事情:

Second, if you are using Oauth, you must include an input with name oauth_provider 
and value twitter or whatever other provider you might want (see example apps for 
dynamic example).

关于这应该如何工作的任何想法?所有示例表单都是yaml - 我不知道 - 我正在尝试使用嵌入式ruby代码创建它。这是我正在使用的表单:

<!-- authlogic-connect hack -->
<%= form_for @user do |f| %>
<%= f.radio_button(:oauth_provider, "linkedin") %>
<%= f.label(:oauth_provider_linkedin, "Link In Fool") %>
<%= f.submit :value => "LinkIn" %>
<% end %>

1 个答案:

答案 0 :(得分:0)

正如Dimitry所指出的,这个问题的最佳答案是使用devise + omniauth而不是试图让authlogic工作。 Authlogic根本不支持rails3。我花了至少一个星期试图让authlogic以我想要的方式工作,我从未解决过这个问题。然后,我花了几个小时得到设计+ omniauth完全按照我的意愿行事(即你可以在LinkedIn或视线上创建一个帐户,你可以将它们关联在一起,这样你就可以使用LinkedIn或电子邮件和密码登录到同一个帐户帐户)。