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.