Ruby on Rails 使用Devise进行身份验证

示例

将gem添加到Gemfile中:

gem 'devise'

然后运行bundle install命令。

使用命令$rails generate devise:install生成所需的配置文件。

在每个环境中为Devise邮件程序设置默认URL选项。在开发环境中,添加以下行:

config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }

给你 config/environments/development.rb

同样在生产中,此编辑config/environments/production.rb文件并添加

config.action_mailer.default_url_options = { host: 'your-site-url'}

然后使用以下方法创建模型:$rails generate devise USERwhereUSER是要为其实现身份验证的类名。

最后,运行:rake db:migrate一切就绪。

自定义视图

如果需要配置视图,则可以使用rails generate devise:views将所有视图复制到应用程序的生成器。然后,您可以根据需要对其进行编辑。

如果您的应用程序中有多个Devise模型(例如User和Admin),您会注意到Devise对所有模型使用相同的视图。Devise提供了一种自定义视图的简便方法。config.scoped_views = true在config/initializers/devise.rb文件内设置。

您还可以使用生成器来创建作用域视图: rails generate devise:views users

如果只想生成几组视图,例如可注册模块和可确认模块的视图,请使用-v标志: rails generate devise:views -v registrations confirmations