2009-12-09 6 views
0

Je développe un projet Rails qui utilise authlogic pour l'authentification. Et j'ai une part dans ce projet qui est réalisé avec Flex, et j'ai besoin de savoir comment un utilisateur peut être authentifié s'il est connecté ou non.Ruby on Rails + WebORB + authlogic + Flex

J'ai mis en place un service Web appelé UserSessionService et j'essayais d'obtenir l'utilisateur qui est connecté, mais cela ne fonctionne pas. Si j'essaie de l'obtenir avec UserSession.find, je reçois juste un # comme résultat (et donc c'est toujours vrai).

Voici le UserSessionService.rb:

require 'weborb/context' 
require 'rbconfig' 

class UserSessionService 
    def login 
    UserSession.find 
    end 
end 

J'ai essayé d'étendre la classe UserSessionService de Authlogic::Session::Base, mais cela ne fonctionne pas non plus.

Répondre

0

Je ne suis pas familier avec Flex, mais il semble que vous recherchiez un authentificateur distant. Voici quelques idées:

  1. Assurez-vous qu'un utilisateur peut se connecter au côté Rails et que toutes ces fonctionnalités fonctionnent. Vous pouvez commencer par http://github.com/binarylogic/authlogic_example, ce qui est un très bon point de départ. Créez un "TestController" en une action: #logged_in, qui affiche simplement "oui" ou "non" selon que vous êtes connecté ou non. Ensuite, allez frapper dans un navigateur - http://localhost:3000/test/logged_in, et voir ce qu'il dit. Ensuite, vous pouvez essayer la même chose dans votre application Flex.

    class TestController < ApplicationController 
        def logged_in 
        render :text => current_user ? 'yes' : 'no' 
        end 
    end 
    
  2. vomis un débogueur dans votre application où il vérifie s'ils sont connectés, et la figure pourquoi pas. C'est généralement lié aux cookies. Voir http://guides.rubyonrails.org/debugging_rails_applications.html pour savoir comment déboguer dans Rails.

Faites-moi savoir comment ça se passe!

+0

merci pour votre réponse. Le problème particulier est que j'accède aux rails avec WebORB et que j'ai seulement la possibilité d'accéder aux fichiers dans app/services/UserService.rb (par exemple). Dans les services fournis par WebORB, les fonctions du framework Rails ne sont pas accessibles. Je ne peux pas accéder à la fonction current_user ou à toute autre fonction définie dans les helpers. Savez-vous comment accéder à ces fonctions ou accéder à un contrôleur via WebORB? THX! tux –

+0

Je ne sais pas si cela sera utile car j'utilise WebORB pour .NET, mais dans Flex, vous pouvez définirCredentials sur un remoteObject. Dans WebORB.NET, vous pouvez utiliser un AuthenticationHandler pour voir qui est connecté. –