/authlogic_facebook_shim

An authlogic add-on to pick up javascript authenticated users and log them in with authlogic using Koala or any other wrapper you choose to add an adapter for.

Primary LanguageRubyMIT LicenseMIT

authlogic_facebook_shim

This is a plugin for integrating facebook sessions into authlogic. It relies on using the Javascript SDK to login to facebook. Currently the shim support koala (github.com/arsduo/koala) for access the graph API but if you have a preferred library it is easy to add an adapter.

This requires a config/facebook.yml file that looks like this:

development:
  app_id: appid
  api_key: apikey
  secret_key: secretkey

production:
  app_id: appid
  api_key: apikey
  secret_key: secretkey

If you don’t have different facebook credentials for different environments you can set these in UserSession

facebook_app_id     'appid'
facebook_api_key    'apikey'
facebook_secret_key 'secretkey'

In your controller you probably have something like this;

def current_user_session
  @current_user_session ||= AccountSession.find
end

def current_user
  @current_user ||= current_user_session.try(:user)
end

def logged_in?
  current_user && !current_user_session.stale?
end

To get hold of the facebook particulars you will need to add something like this;

def facebook_user
  current_user_session.try(:facebook_user)
end

def facebook_user?
  !facebook_user.nil?
end

def facebook_session?
  current_user_session.try(:facebook_session?)
end

Adapters

Currently the only adapter in the shim is for koala (github.com/arsduo/koala) but if you have a preferred wrapper for accessing the graph API please fork the project and add your own adapter (with tests) then send me a pull request.

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 James McCarthy. See LICENSE for details.