Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
An OpenID Consumer plugin for Merb
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib fixed dependency problems
spec added some very simple specs
LICENSE
README you can install from rubyforge now
Rakefile added a task for publishing to rubyforge
merb_openid.gemspec fixed dependency problems

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!
Something went wrong with that request. Please try again.