Devise limite de uma sessão por usuário de cada vez

Meu aplicativo está usando o Rails 3.0.4 e o Devise 1.1.

Estou procurando uma maneira de impedir que os usuários compartilhem contas, pois o aplicativo é um serviço baseado em assinatura. Estou pesquisando há mais de uma semana e ainda não sei como implementar uma solução. Espero que alguém tenha implementado uma solução e possa me indicar a direção cert

Soluçã (Obrigado a todos por suas respostas e idéias!)

In application controller.rb

before_filter :check_concurrent_session

def check_concurrent_session
  if is_already_logged_in?
    sign_out_and_redirect(current_user)
  end
end

def is_already_logged_in?
  current_user && !(session[:token] == current_user.login_token)
end

In session_controller que substitui o controlador Devise Sessions:

skip_before_filter :check_concurrent_session

def create
  super
  set_login_token
end

private
def set_login_token
  token = Devise.friendly_token
  session[:token] = token
  current_user.login_token = token
  current_user.save
end

Em migração AddLoginTokenToUsers

def self.up
  change_table "users" do |t|
    t.string "login_token"
  end
end

def self.down
  change_table "users" do |t|
    t.remove "login_token"
  end
end

questionAnswers(7)

yourAnswerToTheQuestion