quelqu'un sait comment trouver une session par un session_id sur RoR? J'utilise Authlogic dans mon projet je ne sais pas si c'est corrélérubyonrails: comment trouver une session par un session_id
Répondre
Je n'ai pas eu à le faire moi-même, et je ne sais pas exactement pourquoi quelqu'un pourrait avoir besoin de faire cela.
En regardant à travers le code source, je peux voir qu'il pourrait y avoir un moyen de le faire.
Dans le module Authlogic :: Session :: Persistence, il existe une méthode de recherche. Vous pouvez appeler cette méthode en utilisant UserSession.find et il semble avoir la capacité de recherche basée sur id_session
# This is how you persist a session. This finds the record for the current session using
# a variety of methods. It basically tries to "log in" the user without the user having
# to explicitly log in. Check out the other Authlogic::Session modules for more information.
#
# The best way to use this method is something like:
#
# helper_method :current_user_session, :current_user
#
# def current_user_session
# return @current_user_session if defined?(@current_user_session)
# @current_user_session = UserSession.find
# end
#
# def current_user
# return @current_user if defined?(@current_user)
# @current_user = current_user_session && current_user_session.user
# end
#
# Also, this method accepts a single parameter as the id, to find session that you marked with an id:
#
# UserSession.find(:secure)
#
# See the id method for more information on ids.
def find(id = nil, priority_record = nil)
session = new({:priority_record => priority_record}, id)
session.priority_record = priority_record
if session.persisting?
session
else
nil
end
end
end
La documentation de cette méthode se réfère à la Authlogic :: classe Session.
Dans Authlogic :: Session :: Session :: Config, il est indiqué que la clé de session peut être une clé cookie, une chaîne ou un symbole.
module Config
# Works exactly like cookie_key, but for sessions. See cookie_key for more info.
#
# * <tt>Default:</tt> cookie_key
# * <tt>Accepts:</tt> Symbol or String
def session_key(value = nil)
rw_config(:session_key, value, cookie_key)
end
alias_method :session_key=, :session_key
end
Ainsi, dans la méthode qui suit, qui essaie de trouver la session en cours, nous pouvons voir que si le record_id est non nul, alors il recherche la session à l'aide de cette clé.
def persist_by_session
persistence_token, record_id = session_credentials
if !persistence_token.nil?
# Allow finding by persistence token, because when records are created the session is maintained in a before_save, when there is no id.
# This is done for performance reasons and to save on queries.
record = record_id.nil? ?
search_for_record("find_by_persistence_token", persistence_token) :
search_for_record("find_by_#{klass.primary_key}", record_id)
self.unauthorized_record = record if record && record.persistence_token == persistence_token
valid?
else
false
end
end
L'ID d'enregistrement est créé avec la méthode session_credentials. Ce qui semble construire une clé de session en fonction de la clé fournie au contrôleur
def session_credentials
[controller.session[session_key], controller.session["#{session_key}_#{klass.primary_key}"]].compact
end
def session_key
build_key(self.class.session_key)
end
J'ai rassemblé plus de ce en naviguant à travers la source à Github. Si vous avez besoin de plus d'aide, c'est peut-être le meilleur endroit pour commencer à chercher.
Espérons que cela aide
- 1. Comment obtenir l'information $ _SESSION avec un session_id() spécifique en PHP?
- 2. PHP session_id() n'acceptant pas l'identifiant de session existant
- 3. session_id() en PHP
- 4. RubyOnRails: url_for racine de l'application
- 5. Comment savoir si une session est active?
- 6. Session Groovy. Comment trouver le nom d'utilisateur
- 7. Comment trouver si une session Oracle APEX est expiré
- 8. Que dois-je utiliser pour session_id pour une application facebook IFrame?
- 9. comment rendre une session persistante avec .net
- 10. Comment trouver une DLL chargée par un processus dans AIX?
- 11. RubyOnRails: interface avec le script shell
- 12. Utilisation de PHP session_id() pour s'assurer que l'iframe est généré dynamiquement par notre serveur
- 13. Qu'est-ce que c'est réellement php session_id?
- 14. Incrémenter la variable de session par un
- 15. RubyOnRails début Erreur d'exécution du serveur
- 16. Comment éviter une session
- 17. Web2py Importer une fois par session
- 18. Comment trouver une direction par programmation sur une blackberry?
- 19. Sélectionnez le plus récent enregistrement correspondant à session_id
- 20. Comment trouver javac.exe par programme?
- 21. Rails 2.3 session
- 22. Game Center Trouver une correspondance par programme
- 23. NLog par session
- 24. Comment trouver une fonction par nom de fonction
- 25. Watin - Trouver un formulaire par élément
- 26. Comment puis-je accéder à une base de données Interbase (.IB) à l'aide de RubyOnRails?
- 27. Comment trouver une instance par hex dans la console XCode?
- 28. jQuery: Comment trouver une image par son src
- 29. Comment trouver une alerte TFS non configurée par vous
- 30. Comment trouver une DLL avec un CLSID?