際際滷

際際滷Share a Scribd company logo
Devise Taking care of your users Andreas Bj辰rlestam 2011-02-22
Andreas Bj辰rlestam mailto:andreas@bjarlestam.com http://twitter.com/bjarlestam
So you are building a site with rails?
Hopefully you will have some users lining up...
They will probably f#&k things up USER USER
This could require quite some coding Signup page Login page Account confirmation mails Password reset mails Password reset page Checks and redirects
You?
What to do?
DEVISE can do it!
DEVISE User authentication User signup Account confirmaiton Password recovery Remembering via cookie Session expiration Account locking http://github.com/plataformatec/devise
Lets code
Create a rails project $>rails new devise_test $>cd devise_test $>gem install devise $>echo "gem 'devise'" >> Gemfile $>rails generate devise:install $>cat config/routes.rb | sed s/'# root :to'/'root :to'/ >> config/routes.rb
Create a User model $>rails generate devise User $>rake db:migrate
Test it $>rails server $>open http://localhost:3000/users/sign_up $>open http://localhost:3000/users/sign_in $>open http://localhost:3000/users/sign_out
油
What happened?
configuration Configured routes  config/routes.rb devise_for :users Configuration file and localization config/initializers/devise.rb config/initializers/locales/devise.en.yml
User model class User < ActiveRecord::Base # Include default devise modules. Others available are: # :token_authenticatable, :confirmable, :lockable and :timeoutable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable # Setup accessible (or protected) attributes for your model attr_accessible :email, :password, :password_confirmation, :remember_me end
helpers available before_filter :authenticate_user! user_signed_in? current_user
customize views $>rails generate devise:views create  app/views/devise create  app/views/devise/confirmations/new.html.erb create  app/views/devise/mailer/confirmation_instructions.html.erb create  app/views/devise/mailer/reset_password_instructions.html.erb create  app/views/devise/mailer/unlock_instructions.html.erb create  app/views/devise/passwords/edit.html.erb create  app/views/devise/passwords/new.html.erb create  app/views/devise/registrations/edit.html.erb create  app/views/devise/registrations/new.html.erb create  app/views/devise/sessions/new.html.erb create  app/views/devise/shared/_links.erb create  app/views/devise/unlocks/new.html.erb
油
Attributions http://www.flickr.com/photos/weelakeo/3815108314/ http://www.flickr.com/photos/nikio/3899114449/ http://www.flickr.com/photos/zigazou76/3636704536/ http://www.flickr.com/photos/myklroventine-events/3832058915/ http://www.flickr.com/photos/cokaigne/1401246909/ http://www.flickr.com/photos/alpha/5434014952 http://www.flickr.com/photos/alpha/5433405433

More Related Content

Devise

  • 1. Devise Taking care of your users Andreas Bj辰rlestam 2011-02-22
  • 3. So you are building a site with rails?
  • 4. Hopefully you will have some users lining up...
  • 5. They will probably f#&k things up USER USER
  • 6. This could require quite some coding Signup page Login page Account confirmation mails Password reset mails Password reset page Checks and redirects
  • 10. DEVISE User authentication User signup Account confirmaiton Password recovery Remembering via cookie Session expiration Account locking http://github.com/plataformatec/devise
  • 12. Create a rails project $>rails new devise_test $>cd devise_test $>gem install devise $>echo &quot;gem 'devise'&quot; >> Gemfile $>rails generate devise:install $>cat config/routes.rb | sed s/'# root :to'/'root :to'/ >> config/routes.rb
  • 13. Create a User model $>rails generate devise User $>rake db:migrate
  • 14. Test it $>rails server $>open http://localhost:3000/users/sign_up $>open http://localhost:3000/users/sign_in $>open http://localhost:3000/users/sign_out
  • 15.
  • 17. configuration Configured routes config/routes.rb devise_for :users Configuration file and localization config/initializers/devise.rb config/initializers/locales/devise.en.yml
  • 18. User model class User < ActiveRecord::Base # Include default devise modules. Others available are: # :token_authenticatable, :confirmable, :lockable and :timeoutable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable # Setup accessible (or protected) attributes for your model attr_accessible :email, :password, :password_confirmation, :remember_me end
  • 19. helpers available before_filter :authenticate_user! user_signed_in? current_user
  • 20. customize views $>rails generate devise:views create app/views/devise create app/views/devise/confirmations/new.html.erb create app/views/devise/mailer/confirmation_instructions.html.erb create app/views/devise/mailer/reset_password_instructions.html.erb create app/views/devise/mailer/unlock_instructions.html.erb create app/views/devise/passwords/edit.html.erb create app/views/devise/passwords/new.html.erb create app/views/devise/registrations/edit.html.erb create app/views/devise/registrations/new.html.erb create app/views/devise/sessions/new.html.erb create app/views/devise/shared/_links.erb create app/views/devise/unlocks/new.html.erb
  • 21.
  • 22. Attributions http://www.flickr.com/photos/weelakeo/3815108314/ http://www.flickr.com/photos/nikio/3899114449/ http://www.flickr.com/photos/zigazou76/3636704536/ http://www.flickr.com/photos/myklroventine-events/3832058915/ http://www.flickr.com/photos/cokaigne/1401246909/ http://www.flickr.com/photos/alpha/5434014952 http://www.flickr.com/photos/alpha/5433405433