2011-11-18 76 views
7

如何让用户在通过Omniauth创建帐户时设置密码? Omniauth在注册过程中创建了一个存根密码,但用户不知道该密码是什么,因此无法从编辑用户页面更改该密码。在使用Omniauth创建帐户后设置密码(Rails + Devise)

我试图用指令覆盖编辑窗体:How To: Allow users to edit their account without providing a password。我能够更改数据库中的加密密码,但无法使用新密码登录,奇怪的是,在登录失败期间,控制台中没有看到任何错误。

任何想法?

我正在使用Rails 3.0.7和Devise 1.4.8。我的登录/注册码基于标准Omniauth+Devise教程。

回答

0

Omniauth只向您提供有关远程用户的信息,并保证此用户已连接到提供商。然后,您有三种选择:

  • 创建与信息的用户,并设置不与默认方法指定的字段(这是你做了什么密码)
  • 使用该信息预填色器件报名表格(self.new_with_session,如教程中所述),并让用户自己创建自己的帐户,填写缺失的字段(如密码)
  • 将omniauth信息存储在会话(或cookie)中,将用户重定向到缺少的字段,并使用表单信息和会话信息来创建您的新用户。
相关问题