OmniAuth Geni
Geni OAuth2 Strategy for OmniAuth 1.0.
Supports the OAuth 2.0 server-side. Read the Geni docs for more details: http://www.geni.com/platform/developer/help
Installing
Add to your Gemfile
:
gem 'omniauth-geni'
Then bundle install
.
Usage
OmniAuth::Strategies::Geni
is simply a Rack middleware. Read the OmniAuth 1.0 docs for detailed instructions: https://github.com/intridea/omniauth.
Here's a quick example, adding the middleware to a Rails app in config/initializers/omniauth.rb
:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :geni, ENV['GENI_KEY'], ENV['GENI_SECRET']
end
Configuring
You can configure several options, which you pass in to the provider
method via a Hash
:
scope
: A comma-separated list of permissions you want to request from the user. See the Geni docs for a full list of available permissions. Default:email
.display
: The display context to show the authentication page. Options are:web
,desktop
andmobile
. Default:web
.
For example, to request email
permission and display the authorization page in a mobile app:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :geni, ENV['GENI_KEY'], ENV['GENI_SECRET'], :scope => 'email', :display => 'mobile'
end
If you want to set the display
format on a per-request basis, you can just pass it to the OmniAuth request phase URL, for example: /auth/geni?display=popup
.
Authentication Hash
Here's an example Authentication Hash available in request.env['omniauth.auth']
:
{
:provider => 'geni',
:uid => '123',
:info => {
:first_name => 'Alex',
:last_name => 'Thompson',
:email => '[email protected]',
:name => 'Alex Thompson'
},
:credentials => {
:token => 'ABCDEF...', # OAuth 2.0 access_token
:expires_at => 1321747205 # when the access token expires
},
:extra => {
:profile => {
:id => '1234567',
:name => 'Alex Thompson',
:first_name => 'Alex',
:last_name => 'Thompson'
}
}
}
The precise information available may depend on the permissions which you request.