实例:
$ git clone git://github.com/RailsApps/rails3-devise-rspec-cucumber.git
$ bundle install
$ rake db:migrate
在config/environments/production.rb文件中修改代码:
config.serve_static_assets = false
==================================
protect_from_forgery
<%= csrf_meta_tags %>
===================================
VIEW
<% if user_signed_in? %>
Controller
before_filter :authenticate_user!
before_filter :authenticate_user!, :only => [:edit]
routes
authenticated :user do
resources :users
end
Helpers
current_admin
current_user
=================== model ===============
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :confirmable
## Database authenticatable
field :login_name, :type => String, :default => ""
field :encrypted_password, :type => String, :default => ""
## Recoverable
field :reset_password_token, :type => String
field :reset_password_sent_at, :type => Time
## Rememberable
field :remember_created_at, :type => Time
## Trackable
field :sign_in_count, :type => Integer, :default => 0
field :current_sign_in_at, :type => Time
field :last_sign_in_at, :type => Time
field :current_sign_in_ip, :type => String
field :last_sign_in_ip, :type => String
## Confirmable
# field :confirmation_token, :type => String
# field :confirmed_at, :type => Time
# field :confirmation_sent_at, :type => Time
# field :unconfirmed_email, :type => String # Only if using reconfirmable
## Lockable
# field :failed_attempts, :type => Integer, :default => 0 # Only if lock strategy is :failed_attempts
# field :unlock_token, :type => String # Only if unlock strategy is :email or :both
# field :locked_at, :type => Time
## Token authenticatable
# field :authentication_token, :type => String
=================================
1:Encryptable:除了内置的Bcrypt(默认),增加支持认证机制
2:Lockable:锁定一定数量的失败尝试登录。通过电子邮件或之后才能解锁
3:validatable:有效性:提供的电子邮件及密码鉴定。它是可选的,可定制的,所以你可以定义自己的代码。
4:Timeoutable:在一特定时期(expires sessions)没有活动。
5:Trackable(跟踪):追踪 登录的次数、时间戳记签字和IP地址
6:Rememberable(记忆):管理产生和清除表示来自用户保存的cookie的标记(token)
7:Registerable(注册):处理用户注册过程,也可以让他们编辑和摧毁他们的帐户。
8:recoverable(重设)重置用户密码并且发送重置指令。
9:Confirmable注册登录认证
10:Omniauthable: adds Omniauth (github.com/intridea/omniauth) support;
11:Database Authenticatable: encrypts and stores a password in the database to validate the authenticity of a user while signing in. The authentication can be done both through POST requests or HTTP Basic Authentication.
12:Token Authenticatable: signs in a user based on an authentication token (also known as “single access token”). The token can be given both through query string or HTTP Basic Authentication.
通过Divse 添加Users
其中User.rb可用属性:12个
:token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable , :omniauthable ,
:database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable,
使用:
1:Gemfile中加入: gem 'devise'
2:建立devise档案: rails g devise:install(自动在routes.rb中加入:devise_for:user)
3:预设定网站网址:在config/environmentents/development.rb与production.rb中加入
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
4:在app/views/layouts/application.html.erb layout中加入:(提示flash信息)
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
5:设定主页,在routes.rb中
root :to => ""
6:产生User model以及Migration
rails g devise user
7:如果需要E-mail验证登录功能,修改user.rb migration将confirmable打开
8:产生view模板
rails g devise:views
9:建立资料表
rake db:migration
使用:
在需要登录的control中加上:before_filter:authenticate_user!
!!
定制登录信息:(注意修改:)
devise默认是email和密码登录,那么,现在用用户名登录!配置如下:
1:添加username字段到User表单
rails generate migration add_username_to_users username:string
rake db:migration
2:修改配置文件:是devise默认用username登录/config/initializers/devise.rb
config.authentication_keys = [ :username ]
config.sign_out_via = :get
3:修改注册页面,app\views\devise\registrations\new.html.erb(类似修改其他devise的视图)
<h2>Sign up</h2>
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<p><%= f.label :username %><br />//////
<%= f.text_field :username %></p>//////
<p><%= f.label :email %><br />
<%= f.email_field :email %></p>
<p><%= f.label :password %><br />
<%= f.password_field :password %></p>
<p><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %></p>
<p><%= f.submit "Sign up" %></p>
<% end %>
<%= render :partial => "devise/shared/links" %>
4:重启服务-效果成功
相关推荐
插件拒绝弱口令,使用这是Ruby端口。 如果默认情况下分数低于4,将拒绝用户密码。 它还将电子邮件用作zxcvbn的用户输入,以拒绝包含电子邮件部分的密码(如果在前端使用zxcvbn.js,则也应这样做以获得相同的分数)...
权威设计 这是一个扩展,用于将添加到Rails应用程序。OneTouch支持通用身份验证令牌支持Rails 5 ... $ export AUTHY_API_KEY=YOUR_AUTHY_API_KEY 接下来,将gem添加到您的Gemfile中: gem 'devise'gem 'devise-authy'
This book is for web developers who are getting started with Rails and are looking for authentication solutions, as well as for Rails developers who are looking to extend their implementation of ...
这个库是基于Warden,一个通用的身份验证库,允许Devise在Rails应用中实现自定义的身份验证逻辑。 Devise的主要特点包括: 1. **模块化**:Devise通过一系列可插入的模块来实现不同的功能,如确认、密码重置、记住...
authy-devise, Authy设计插件添加两个因素认证 Authy设计这是一个设计插件扩展,向你的Rails 应用程序添加两个因素验证。要求获取 Authy API密钥: https://www.authy.com/signup演示请参见 https://github.com/aut
`devise`是Rails社区广泛使用的灵活的身份验证解决方案,而`devise_openid_authenticatable`则是其插件,增加了对OpenID协议的支持,允许用户使用像Google或Yahoo这样的OpenID提供者进行登录。 在描述中,"使用...
例如,`devise` 是一个灵活的身份认证解决方案,`bootstrap-sass` 则用于在 Rails 应用中集成 Bootstrap 框架,提供美观的 UI 设计。这些插件可以通过 Gemfile 文件管理和更新,通过运行 `bundle install` 来安装 ...
Devise是Ruby on Rails框架中一个非常流行的用户认证解决方案,它提供了一套全面的、可配置的、基于模型的认证机制。在这个“使用Devise的Noodall用户登录和管理”教程中,我们将深入探讨如何在Noodall(一个基于...
devise-i18n, 设计 gem的翻译 devise-i18n 设计"是一种基于warden的Rails 灵活认证方案"。 国际化( aka i18n ) 是一个"计算机软件适应不同语言。区域差异和目标市场技术要求的方法"。在控制器。模型和其他领域中支持...
Devise 是一个灵活的身份认证解决方案,它为 Ruby on Rails 应用程序提供了强大的用户管理和验证功能。在默认情况下,Devise 使用电子邮件作为用户的唯一标识符,但有些情况下,你可能需要添加 UID(用户唯一标识符...
这是一个Devise的插件,为用户提供邀请功能。当用户被邀请时,他们会收到一封包含激活链接的邮件,点击链接后可以创建账户。Devise Invitable确保被邀请的用户在创建账户之前未注册,并且只有在确认邀请后才能访问...
这是一个npm软件包,其中包含打包为插件的Ember Simple Auth devise扩展库。 安装 Ember Simple Auth Devise至少需要Ember CLI 0.0.44。 要安装只需运行 ember install ember-cli-simple-auth ember install ember...
Devise 是一个灵活的身份认证解决方案,它为 Ruby on Rails 应用程序提供了强大的功能。这个压缩包文件"Devise操作的链接助手,包括用户会话和注册链接_.zip"很可能包含了一个示例项目或者是一组帮助开发者理解如何...
标题中的“具有Devise身份验证的模板RailsAngular应用程序”指的是一个使用Ruby on Rails框架和AngularJS前端库构建的Web应用程序,其中集成了Devise gem进行用户身份验证。这个项目可能是为了展示如何在Rails后端与...
devise-jwt是一个扩展,它使用令牌进行用户身份验证。 它遵循原则。 当无法使用Cookie时,此gem只是它们的替代品。 作为cookie,以devise-jwt过期的令牌将强制具有过期时间。 如果您需要用户永不注销,那么使用...
DeViSE,全称为Deep Visual-Semantic Embedding Model,是一种深度学习模型,旨在将视觉特征(如图像)与语义特征(如单词或...通过Python和TensorFlow的实现,你可以直观地探索和调整模型参数,以适应不同的应用场景。
Devise 是一个针对C#9开发的Source Generators工具,其主要功能是自动生成CRUD(创建、读取、更新、删除)API,极大地提高了开发效率。Source Generators是C#编译器的一个新特性,它允许在编译时动态生成源代码,...
此devise插件尚未在同时启用DatabaseAuthenticatable的情况下进行过测试。 这意味着减少了对DatabaseAuthenticatable的替代,从而允许使用半单点登录方法。 有关示例应用程序的截屏视频,请访问: : 先决条件设计〜...
标题中的“使用Rails4Devise和Grape验证API”揭示了这个项目是关于在Ruby on Rails 4框架中实现用户认证的。Devise是一个灵活的身份验证解决方案,它为Rails应用提供了许多常见的身份验证需求,如注册、登录、密码...