About Authem

Authem is an email-based authentication library for ruby web apps.


Authem requires Ruby 1.9.3 or newer

Build Status Code Climate


Please see the Authem website for up-to-date documentation: http://authem.org

Upgrading to 2.0

  • Run bundle update authem and make sure you are on the 2.0.x release.
  • Remove references to the old Authem::Config object.
  • Create the new sessions table with rails g authem:session.
  • Replace include Authem::ControllerSupport with authem_for :user.
  • Rename signed_in? to user_signed_in? OR alias_method :signed_in?, :user_signed_in? in your controller.
  • Rename column User#reset_password_token to User#password_reset_token OR alias_attribute :password_reset_token, :reset_password_token in your User model.
  • Replace calls to user#reset_password_token! with user#password_reset_token. Tokens are now generated automatically and the bang method is deprecated.
  • Rename sign_out to sign_out_user OR alias_method :sign_out, :sign_out_user
  • If you were passing a remember flag as the second argument to sign_in, you need to provide an options hash instead. For example, sign_in(user, params[:remember]) would become sign_in(user, remember: params[:remember]).
  • Blank email addresses will now produce the proper "can't be blank" validation message". Update your tests accordingly.
  • Email addresses are no longer automatically downcased when calling find_by_email on your model. You will need to downcase the value manually if you wish to retain this behavior.
  • Specify what to do when authem denies access to a user by adding something like this to your ApplicationController. def deny_user_access redirect_to :sign_in end