OauthProviderEngine
A Rails Engine that allow the site to act as an OAuth provider
Installation
In your Gemfile add:
gem 'oauth_provider_engine'
Install your gems:
bundle install
That’s it!
Configuration
OauthProviderEngine makes no assumptions about how you manage your user authentication. You can configure OauthProviderEngine by setting Proc’s that are evaluated at runtime.
For example, in an initializer:
OauthProviderEngine.configure do |config|
# runs as a before_filter to the /oauth/authenticate endpoint to
# ensure the user is logged in before authorizing an app
config.authenticate_method = Proc.new{|controller|
controller.redirect_to login_path unless controller.logged_in?
}
# runs as a before_filter to the /oauth/applications resource to
# ensure the user can manage the oauth applications
config.admin_authenticate_method = Proc.new{|controller|
render :text => '', :status => 401 unless controller.current_user &&
controller.current_user.allowed?("manage_oauth")
}
# returns the current user's id so we know who is allowing access
config.user_method = Proc.new{|controller|
controller.current_user.id
end
end
Data Model
OauthProviderEngine uses ActiveRecord to manage 3 tables:
-
applications (OauthProviderEngine::Application)
-
request_tokens (OauthProviderEngine::RequestToken)
-
access_tokens (OauthProviderEngine::AccessToken)
A rails generator is provided for your convenience:
bundle exec rails generate oauth_provider_engine
You may also generate your migration by hand, if you’d like to take advantage of database specific features (like foreign keys for InnoDB MySQL tables).
Contributing
If you’d like to contribute to this project, please fork and send me a pull request.