ruby-on-rails-3 – 在使用Omniauth(Rails Devise)创建帐户后设置密码

如何让用户在通过Omniauth创建帐户后设置密码? Omniauth在注册期间创建存根密码,但用户不知道该密码是什么,因此无法从编辑用户页面更改密码.

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

有任何想法吗?

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

解决方法

Omniauth仅向您提供有关远程用户的信息,并保证此用户已连接到提供者.然后你有三个选择:

>使用该信息创建用户,并设置未使用默认方法指定的字段(这是您为密码所做的)>使用该信息预先填写设计注册表单(如教程中所述,self.new_with_session),并让用户自己创建自己的帐户,填写缺少的字段(如密码)>将omniauth信息存储在会话(或cookie)中,将用户重定向到包含缺少字段的表单,并使用表单信息和会话信息来创建新用户.

相关文章

以下代码导致我的问题: class Foo def initialize(n=0) @n = n end attr_accessor :n d...
这是我的spec文件,当为上下文添加测试“而不是可单独更新用户余额”时,我得到以下错误. require 's...
我有一个拦截器:DevelopmentMailInterceptor和一个启动拦截器的inititializer setup_mail.rb. 但我想将...
例如,如果我有YAML文件 en: questions: new: 'New Question' other: recent: ...
我听说在RSpec中避免它,let,let !,指定,之前和主题是最佳做法. 关于让,让!之前,如果不使用这些,我该如...
我在Rails中使用MongoDB和mongo_mapper gem,项目足够大.有什么办法可以将数据从Mongoid迁移到 Postgres...