devise_oauth2_authenticatable
This is the basic framework for an OAuth2 gem for Devise.
It currently works with FacebookGraph, to get started begin by registering a new application at
http://developers.facebook.com/setup/
A generator is provided for creating your oauth yml file
script/generate devise_oauth2_authenticatable
Ex:
script/generate devise_oauth2_authenticatable –id API_ID –key SECRET –server graph.facebook.com –scope ‘email,offline_access,publish_stream’
for more details
developers.facebook.com/docs/authentication/
It’s based on the devise facebook gem provided by grimen
http://github.com/grimen/devise_facebook_connectable
And uses the example provided in OAuth2 library provided by mbleigh
http://github.com/intridea/oauth2
DB Migration :
add_column :users, :oauth2_uid, :integer, :limit => 8 # BIGINT unsigned / 64-bit int
add_column :users, :oauth2_token, :string, :limit => 149 # [128][1][20] chars
add_index :users, :oauth2_uid, :unique => true
Note:
A little souce of confusion when working with Facebook Graph
The api key and secret key are no the same a Facebook Connect/the old API.
The client id should be your application id and the client_key, should be your API key (not secret key)
TODO
Write tests :
Currently no tests have been written. My bad.
Add Javascript / token based auth :
Facebook graph offes a complete authorization solution using javascript and a returned authentication token. Adding optional support for this would complete the Facebook Graph authentication interface.
Generalize for OAuth2:
Add support for other OAuth2 services. Wrote this specifically for facebook graph, athought configuration arugments should be generalized to support other interfaces.
Description goes here.
Note on Patches/Pull Requests
-
Fork the project.
-
Make your feature addition or bug fix.
-
Add tests for it. This is important so I don’t break it in a future version unintentionally.
-
Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
-
Send me a pull request. Bonus points for topic branches.
Copyright
Copyright © 2010 bhbryant. See LICENSE for details.