2009-12-09 69 views
0

我正在开发一个使用authlogic进行认证的Rails项目。我在Flex中实现了该项目的一部分,并且我需要知道用户如何登录或不登录时如何进行身份验证。Ruby on Rails + WebORB + authlogic + Flex

我已经设置了一个名为UserSessionService的webservice,我试图让用户登录,但它不起作用。如果我试图用UserSession.find来得到它,我只是得到一个#作为结果(因此总是如此)。

这里的UserSessionService.rb:

require 'weborb/context' 
require 'rbconfig' 

class UserSessionService 
    def login 
    UserSession.find 
    end 
end 

我试图从Authlogic::Session::Base延长UserSessionService类,但也不管用。

回答

0

我不熟悉Flex,但它似乎你正在寻找一个远程验证器。这里有一些想法:

  1. 确保用户可以在Rails端“登录”,并且所有功能都可以工作。你可能想从http://github.com/binarylogic/authlogic_example开始,这是一个非常好的开始。

  2. 通过一个动作创建一个“TestController”:#logged_in,根据您是否登录,仅打印“yes”或“no”。然后去浏览器中 - http://localhost:3000/test/logged_in,看看它说什么。然后,您可以在Flex应用程序中尝试相同的操作。

    class TestController < ApplicationController 
        def logged_in 
        render :text => current_user ? 'yes' : 'no' 
        end 
    end 
    
  3. 在你的应用程序中抛出一个调试器,检查它们是否已经登录,并找出原因。它通常与cookies相关。有关如何在Rails中进行调试,请参阅http://guides.rubyonrails.org/debugging_rails_applications.html

请让我知道它是怎么回事!

+0

谢谢你的回答。特别的问题是,我使用WebORB访问rails侧,所以我只能访问app/services/UserService.rb中的文件(例如)。在WebORB提供的服务中,Rails框架的功能无法访问。我无法访问current_user函数或helpers中定义的任何其他函数。你知道我可以通过WebORB访问该功能或访问控制器吗?谢谢! tux – 2009-12-10 08:27:04

+0

我不确定这是否会有用,因为我使用WebORB for .NET,但在Flex中,您可以在remoteObject上设置Cookie。在WebORB.NET中,您可以使用AuthenticationHandler来查看谁已登录。 – 2009-12-10 13:40:48