Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
OAuth2 authorization for embedded iframe applications
Ruby JavaScript CSS
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
app
config
lib
spec
.gitignore
.rspec
.travis.yml
Gemfile
MIT-LICENSE
README.md Added coveralls
Rakefile
oa2c.gemspec

README.md

Oa2c - OAuth2 Container

Gem Version Build Status Coverage Status

Rails OAuth2 provider engine to support embedded iframe applications from different sites. Just like games on Facebook.

Heavily depends on rack-oauth2 gem.

It's mostly extract from rack-oauth2-sample.

Right now it supports only Mongoid 3 as ORM.

Installation

First of all, add gem 'oa2c' to your Gemfile and bundle it.

Then add this to config/application.rb:

  config.middleware.use Oa2c::Middleware

And add this to your config/routes.rb:

  mount Oa2c::Engine => "/oauth"

And then you need to add this line to your user model:

  include Oa2c::User

This will add access_tokens and authorization_codes associations.

And finally add to your controllers that require OAuth2 authentictation:

  include Oa2c::Authentication

Configuration

To change some settings, e.g. user model, add an initializer config/initializers/oa2c.rb:

Oa2c.setup do |config|
  config.user_model = "User"
  config.authentication_method = :authenticate_user!
  config.login_method = :sign_in
  config.current_user_method = :current_user
  config.find_user_for_password_authentication = proc {|username, password|
    user = Oa2c.user_model.constantize.where(email: username).first
    user if user.valid_password? password
  }
  config.auto_approve = false # if true, don't show 'approve' / 'deny' buttons to user
  config.layout = false # flase or symbol, just like in controllers
end

Note: these are defaults for Devise. You don't need to do anything if you use the same settings

License

See MIT-LICENSE

Contribute

Pull requests are more than welcome!

Something went wrong with that request. Please try again.