Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
An OpenID Consumer plugin for Merb
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
merb_openid =========== A plugin for Merb that wraps the ruby-openid gem (2.x) and provides an easy interface for consuming OpenIDs in a very similar way to the open_id_authentication plugin for Rails. Installation ============ Easy: gem install merb_openid Then in your application's init.rb: dependency 'merb_openid' The plugin uses the pretty limited memory store by default but you can add a new store using Merb::Config: Merb::Config[:merb_openid][:store] = OpenID::Store::Memory.new You'll probably want to use a database store on production apps. I'll start adding adapters based on the various ORMs soon. Usage ===== In your routes you need to make sure that the url you consume OpenIDs from can accept get requests, so: r.match('openid').(:controller => 'session', :action => 'openid') Then in your controller: class Session < Merb::Controller def openid if openid_request? # has the user provided a url (openid_url) openid_authenticate do |result, identity_url| if result == :success user = User.find_by_openid_url(identity_url) end end end end end SReg ==== Getting SReg data is easy too: class Session < Merb::Controller def openid if openid_request? # has the user provided a url (openid_url) openid_authenticate(:fields => [:fullname, :email]) do |result, identity_url, sreg| if result == :success user = User.find_by_openid_url(identity_url) user.name = sreg[:fullname] end end end end end More to come!