使用新的openid登录authlogic创建新用户

我已经在rails网站中实现了authlogic,我正试图让openid正常工作。 到目前为止,只要您拥有现有帐户,就可以登录,但如果不是,则可以登录。 如果identity_url尚未存在于数据库中,我希望能够自动创建新帐户。

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

我玩了几种方法,但似乎没有任何工作。

提前感谢任何输入!

也许您尝试将附加信息放入某种临时表中并跟踪用户所在的会话。一旦经过身份validation,将先前输入的信息与openid信息相关联以创建真实用户。

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