创建新的OpenID登录authlogic新用户(Create a new user with ne

2019-09-16 23:30发布

我在一个轨道站点实现authlogic,而我试图让OpenID的正常工作。 到目前为止,你可以,只要你有一个现有的帐户登录就好了,但如果你没有那么多。 我想能够自动地创建一个新帐户,如果identity_url是不是已经在数据库中。

问题是,我也需要存储一些额外的信息。 如果用户登录,第一次用自己的OpenID,我想请他们填写基本信息(姓名,电子邮件),之前创建的帐户。

我打得周围的一些方法,但似乎没有奏效。

预先感谢任何输入!

Answer 1:

acts_as_authentic do |c| 
  c.openid_required_fields = [:email,"http://axschema.org/contact/email"]
end

将让你需要的电子邮件。 我不确定如何要求其他领域,但也许检查axschema.org页面。 有没有需要用户填写任何东西比他们的OpenID提供商的URL进行其他。

结合登录和注册可以用像这样做(未经测试的创建UserSessions控制器的方法,就像从authlogic教程的东西)

def create
  if User.find_by_openid_provider(params[:user_session]).nil? # or something like that
    @user = User.new(params[:user_session])
    if @user.save
      redirect_to whatever_path
    else
      # handle error
    end
  else
    @user_session = UserSession.new(params[:user_session])
    if @user_session.save
      add_message 'Login successful!'
      redirect_to whatever_path
    else
      render :action => :new
    end
  end
end


Answer 2:

也许尝试把更多的信息变成某种形式的临时表,并跟踪用户会话的。一旦他们验证,与OpenID信息来创建真正的用户连接以前输入的信息。



文章来源: Create a new user with new openid login authlogic