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