Released hobo-openid gem

2010/08/04 at 6:47 pm (2010, Hobo, Programming, Ruby on Rails, WebApplication)

I released hobo_openid to RubyGems ( here :) ).  It still needs work but is usable. To add OpenID support to your Hobo application install hobo_openid gem and change your application a bit.

Modify user model

First you need to add field storing OpenID to your User model. Open app/models/user.rb and add

openid        :string


Modify users controller

Then add actions that will handle logging in and sign up to your UsersController. Open app/controllers/users_controller.rb and add following line to the controller class:

openid_login({ :openid_opts => { :model => User } })

Create OpenID login page

With current version of Hobo it’s impossible to include taglibs in gems (probably it’ll be possible when next version of Hobo comes out), so you will need  to change some pages manually. Create app/views/users/openid_login.dryml with following content:



        <input type="text" name="login" id="login" class="string"/>

      <labelled-item if="&Hobo::User.default_user_model.column_names.include?('remember_token')">
        <item-label class="field-label">Remember me:</item-label>
        <input type="checkbox" name="remember_me" id="remember-me"/>


    <set user="&Hobo::User.default_user_model"/>

    <div class="actions">
      <submit label='Log in'/>


Add links to OpenID login page on login and signup pages

Create app/views/users/signup.dryml with content

    Or <a href="&openid_login_users_path">sign up using OpenID</a>.

and app/views/users/login.dryml with content

    Or <a href="&openid_login_users_path">log in using OpenID</a>.

Create routes

Add this lines to config/routes.rb:

map.openid_login_users 'users/openid_login', :controller => 'users', :action => 'openid_login', :conditions => {:method => :get}
map.complete_openid_users 'users/complete_openid', :controller => 'users', :action => 'complete_openid', :conditions => {:method => :get}

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: