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 © 2010 bhbryant. See LICENSE for details.