authlogic_facebook_shim
This is a plugin for integrating facebook sessions into authlogic.
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
If you have conventional signin and want to ignore facebook for it you will need to do this in your user_sessions_controller;
def create
@account_session = AccountSession.new(params[:account_session])
@account_session.skip_facebook_authentication = true
if @account_session.save
redirect_to member_home_path
else
render :action => :new
end
end
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 James McCarthy. See LICENSE for details.