Mon application est à l'aide de Rails 3.0.4 et de Concevoir 1.1.7.
Je suis à la recherche d'un moyen d'empêcher les utilisateurs de partager des comptes que l'application est un service sur abonnement. J'ai cherché pendant plus d'une semaine, et je ne sais toujours pas comment mettre en œuvre une solution. J'espère que quelqu'un a mis en œuvre une solution et peut me pointer dans la bonne direction.
Solution (Merci à vous tous pour vos réponses et votre perspicacité!)
En application du contrôleur.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
Dans session_controller qui remplace Concevoir des Séances de contrôleur:
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
Dans la migration 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