rlivsey / merb_openid forked from danwrong/merb_openid
- Source
- Commits
- Network (3)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
master
Richard Livsey (author)
Wed Dec 10 14:09:20 -0800 2008
README
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!
