CurrentUser
Dev phase auth for Rails.
What it is
- A simple authentication gem for the development (pre-production) phase
- Familiar rails conventions: #current_user, #signed_in?
- A minimalistic signin page with a list of all available users (just click on a user and you will be logged in under the user)
- An opportunity to replace it with one of the mature solution (assuming Devise)
What it is not
- An authentication solution for the production phase of the application lifecycle
- An authorization gem (although in the future it might get some authorization features to mimic Devise)
How it looks like
[]
Getting started
CurrentUser works with Rails 3.2 and 4.0 using Ruby 1.9.3 or Ruby 2.0.
Add to your Gemfile:
gem "current_user"
Install it using bundler:
bundle install
Note: CurrentUser assumes your application already has a few users.
So if the assumption is false, create User active record class AND/OR add several users to the database.
It also assumes User has "email" attribute/method. If it is not the case, add "email" or change configuration
in config/initializers/current_user.rb
.
Run the generator:
rails generate current_user:install
The generator:
- creates a file with a unique authentication key for your application
- creates an initializer
- inject routing to your application
- show README
Specify root in config/routes.rb
:
root :to => 'dashboards#show'
Add before filter to app/controllers/application_controller.rb
:
before_filter :authenticate_user!
Try to visit one of protected pages of your application (for example root). You will see "Unauthorized" error page.
Run a rake task what shows a path to your sign in page:
rake current_user:sign_in_path
Visit your sign in page. You will see a list of users of your application. Click on a user and the link will take you to the root page of the application.
Congratulations. Your application has a simple authentication solution. Send a link to the sign in page to your customer and she/he will love to test your app manually :)
Helpers
CurrentUser creates some helpers to use inside your controllers and views.
To verify if a user is signed in, use the following helper:
signed_in?
For the current signed-in user, this helper is available:
current_user
Logo
License
It uses MIT license. See MIT-LICENSE file in the root directory.