CSC/ECE 517 Spring 2015/ch1b 21 QW: Difference between revisions
Line 21: | Line 21: | ||
=== Initialize Rails === | === Initialize Rails === | ||
Because OmniAuth is built for multi-provider authentication, you need to leave room to run multiple strategies. For this, the built-in <code> OmniAuth::Builder </code> class gives you an easy way to specify multiple strategies. Note that there is no difference between the following code and using each strategy individually as middleware. This is an example that you might put into a Rails initializer at <code> config/initializers/omniauth.rb </code>: | Because OmniAuth is built for multi-provider authentication, you need to leave room to run multiple strategies. For this, the built-in <code> OmniAuth::Builder </code> class gives you an easy way to specify multiple strategies. Note that there is no difference between the following code and using each strategy individually as middleware. This is an example that you might put into a Rails initializer at <code> config/initializers/omniauth.rb </code>: | ||
<pre> | |||
Rails.application.config.middleware.use OmniAuth::Builder do | Rails.application.config.middleware.use OmniAuth::Builder do | ||
provider :developer unless Rails.env.production? | provider :developer unless Rails.env.production? | ||
provider :twitter, ENV['TWITTER_KEY'], ENV['TWITTER_SECRET'] | provider :twitter, ENV['TWITTER_KEY'], ENV['TWITTER_SECRET'] | ||
end | end | ||
</pre> | |||
== Other Examples == | == Other Examples == | ||
== References == | == References == | ||
<references/> | <references/> |
Revision as of 17:08, 16 February 2015
Omniauth
Omniauth is a Ruby authentication framework aimed to integrated with various types of authentication providers. It can be hooked up to any system, from social network to enterprise systems to simple username and password authentication. <ref>https://github.com/intridea/omniauth/wiki</ref>
The topic writeup for this page can be found here.
Background
With web application booming, most users login hundreds of services every day and won't expect to create unique login and password for each service. So intridea recently releases a standard library to provide multi-provider authentication for web applications.
Rack Middleware
Sinatra
Getting Start
Each OmniAuth strategy is a Rack Middleware, which means it can be used the same way as other Rack middleware. Here we introduce a simple example on how to use Twitter strategy for OmniAuth.
Add gem to Gemfile
First start by adding this gem to your Gemfile:
gem 'omniauth-twitter'
If you need to use the latest HEAD version, you can do so with:
gem 'omniauth-twitter', :github => 'arunagw/omniauth-twitter'
Initialize Rails
Because OmniAuth is built for multi-provider authentication, you need to leave room to run multiple strategies. For this, the built-in OmniAuth::Builder
class gives you an easy way to specify multiple strategies. Note that there is no difference between the following code and using each strategy individually as middleware. This is an example that you might put into a Rails initializer at config/initializers/omniauth.rb
:
Rails.application.config.middleware.use OmniAuth::Builder do provider :developer unless Rails.env.production? provider :twitter, ENV['TWITTER_KEY'], ENV['TWITTER_SECRET'] end
Other Examples
References
<references/>