2009-12-09 8 views
0

Я разрабатываю проект Rails, который использует authlogic для аутентификации. И я участвую в этом проекте, который реализуется с помощью Flex, и мне нужно знать, как пользователь может быть аутентифицирован, если он или она вошли в систему или нет.Ruby on Rails + WebORB + authlogic + Flex

Я создал веб-сервис под названием UserSessionService, и я пытался получить пользователя, который вошел в систему, но он не работает. Если я попытаюсь получить его с UserSession.find, я просто получу # в качестве результата (и, следовательно, это всегда верно).

Вот UserSessionService.rb:

require 'weborb/context' 
require 'rbconfig' 

class UserSessionService 
    def login 
    UserSession.find 
    end 
end 

Я попытался расширить UserSessionService класс от Authlogic::Session::Base, но это не работает.

ответ

0

Я не знаком с Flex, но, похоже, вы ищете удаленный аутентификатор. Вот несколько идей:

  1. Удостоверьтесь, что пользователь может «войти» на стороне Rails, и вся эта функциональность работает. Вы можете начать с http://github.com/binarylogic/authlogic_example, что является действительно хорошим стартовым местом.

  2. Сделайте «TestController» одним действием: #logged_in, который просто печатает «да» или «нет» на основании того, вошли ли вы в систему или нет. Затем перейдите в браузер - http://localhost:3000/test/logged_in и посмотрите, что он говорит. Затем вы можете попробовать то же самое в своем приложении Flex.

    class TestController < ApplicationController 
        def logged_in 
        render :text => current_user ? 'yes' : 'no' 
        end 
    end 
    
  3. Вскинем отладчик в вашем приложении, где он проверяет они вошли ли в, и выяснить, почему нет. Обычно это связано с файлами cookie. См. http://guides.rubyonrails.org/debugging_rails_applications.html о том, как отлаживать Rails.

Пожалуйста, дайте мне знать, как это происходит!

+0

Благодарим вас за ответ. Конкретная проблема заключается в том, что я обращаюсь к стороне рельсов с WebORB, и поэтому у меня есть только доступ к файлам в app/services/UserService.rb (например). В службах, предоставляемых WebORB, функции Rails-инфраструктуры недоступны. Я не могу получить доступ к функции current_user или любой другой функции, определенной в помощниках. Вы знаете, как я могу получить доступ к этим функциям или получить доступ к контроллеру через WebORB? спасибо! tux – 2009-12-10 08:27:04

+0

Я не уверен, что это будет полезно, поскольку я использую WebORB для .NET, но в Flex вы можете setCredentials на удаленном объекте. В WebORB.NET вы можете использовать AuthenticationHandler, чтобы узнать, кто вошел в систему. –

Смежные вопросы