Как лучше всего отслеживать анонимного пользователя с помощью плагина restful_authentication в Rails?

Я видел общие сообщения о том, как отслеживать анонимных пользователей в приложении для голосования, например, с помощью файлов cookie. Но, в частности, как мне изменить restful_authentication для отслеживания анонимных пользователей с IP + user-agent (хеш). Спасибо.


person Chirag Patel    schedule 04.07.2011    source источник


Ответы (2)


Не думаю, что здесь поможет restful-authentication? Я думаю, вам нужно создать для этого свой собственный метод.

Почему вы также хотите связать IP и User-Agent? Достаточно ли одного IP-адреса?

person Zach Inglis    schedule 16.07.2011

В итоге я создал метод login_from_anonymous в lib/authenticated_system.rb, как показано ниже. Этот метод называется методом current_user, который также показан ниже.

def login_from_anonymous
  user = User.new({"new_profile_attributes"=>                                 
                      { "country_code"=>"", "zip"=>"", "first_name"=>"Anonymous",
                        "last_name"=>"User", "affiliation_id"=>"1"
                      }, 
                   "password"               =>  "anonymous123", 
                   "password_confirmation"  =>  "anonymous123", 
                   #"invitation_token"       =>  "", 
                   "invitation_limit"       =>  0,                        
                   "login"                  =>  "anonymous_#{Time.now.strftime("%m-%d-%y+%I:%M:%S%p")}", 
                   "email"                  =>  "[email protected]",
                   "current_ip"             =>  request.env['REMOTE_ADDR']})    
  user.send(:create_without_callbacks)
  self.current_user = user
  handle_remember_cookie! true # freshen cookie token (keeping date)
  self.current_user
end  

def current_user     
    @current_user ||= (login_from_session || login_from_basic_auth || login_from_cookie || login_from_anonymous) unless @current_user == false
end 
person Chirag Patel    schedule 20.07.2011