使用新的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
- Ruby on Rails:添加Facebook登录,Twitter登录,OpenID登录等的最佳方式
- Authlogic创建没有密码的新会话
- Rails OpenID身份validation插件不再安装Rake任务?
- 使用OpenID,Twitter或Facebook进行Rails 3身份validation
- 使用Facebook Connect与Authlogic
- Rails和Authlogic:每个用户只允许一个会话?
- 使用authlogic更改密码 – validation不捕获空白输入
- Ruby on rails – Authlogic:定期检查用户会话是否有效
- 什么是omniauth和电子邮件密码注册最佳实践?