devise-remote-user
A devise extension for remote user authentication.
Installation
Add to Gemfile:
gem 'devise-remote-user'
Then
bundle install
Sorry, there are no generators yet, so ...
- Add
:remote_user_authenticatable
symbol todevise
statement in User model, before other authentication strategies (e.g.,:database_authenticatable
). - Add
before_filter :authenticate_user!
to ApplicationController, if not already present. This ensures that remote user is logged in locally (via database)
Configuration options:
-
env_key
- String (default:'REMOTE_USER'
). Request environment key for the remote user id. -
attribute_map
- Hash (default:{}
). Map of User model attributes to request environment keys for updating the local user when auto-creation is enabled. -
auto_create
- Boolean (default:false
). Whether to auto-create a local user from the remote user attributes. Note: Also requires adding the Warden callbacks as shown below. -
auto_update
- Boolean (default:false
). Whether to auto-update authenticated user attributes from remote user attributes. -
logout_url
- String (default:'/'
). For redirecting to a remote user logout URL after signing out of the Rails application. IncludeDeviseRemoteUser::ControllerBehavior
in your application controller to enable (by overriding Devise'safter_sign_out_path_for
).
Set options in a Rails initializer (e.g., config/intializers/devise.rb
):
require 'devise_remote_user'
DeviseRemoteUser.configure do |config|
config.env_key = 'REMOTE_USER'
config.auto_create = true
config.auto_update = true
config.attribute_map = {email: 'mail'}
config.logout_url = "http://my.host/path.to.remote.logout"
end
Tests
rake ci
runs the test suite.