2009-12-09 47 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