【问题标题】:Ruby on Rails + WebORB + authlogic + FlexRuby on Rails + WebORB + authlogic + Flex
【发布时间】:2009-12-09 22:39:25
【问题描述】:

我正在开发一个使用 authlogic 进行身份验证的 Rails 项目。我在那个项目中有一部分是用 Flex 实现的,我需要知道如果用户登录与否,如何对其进行身份验证。

我设置了一个名为UserSessionService 的网络服务,我试图获取已登录的用户,但它不起作用。如果我尝试使用 UserSession.find 来获取它,我只会得到一个 # 作为结果(因此总是如此)。

这是 UserSessionService.rb:

require 'weborb/context'
require 'rbconfig'

class UserSessionService
  def login
    UserSession.find
  end
end

我尝试从Authlogic::Session::Base 扩展UserSessionService 类,但这也不起作用。

【问题讨论】:

    标签: apache-flex authlogic weborb


    【解决方案1】:

    我现在在 Flex 中使用了一个额外的 HTTPService 来访问 UserSessions 控制器中的一个函数。有关更多详细信息,请查看 http://blog.sketchit.de/2009/12/flex-mit-ruby-on-rails-authlogic-authenitifizieren/(对不起,只有德语)

    感谢您的帮助! 晚礼服

    【讨论】:

      【解决方案2】:

      我不熟悉 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. 在您的应用程序中启动一个调试器,用于检查用户是否已登录,并找出原因。它通常与 cookie 有关。请参阅http://guides.rubyonrails.org/debugging_rails_applications.html 了解如何在 Rails 中进行调试。

      请告诉我进展如何!

      【讨论】:

      • 感谢您的回答。特别的问题是,我正在使用 WebORB 访问 rails 端,因此我只能访问 app/services/UserService.rb 中的文件(例如)。在 WebORB 提供的服务中,无法访问 Rails 框架的功能。我无法访问 current_user 函数或助手中定义的任何其他函数。你知道我如何通过 WebORB 访问这些功能或访问控制器吗?谢谢!晚礼服
      • 我不确定这是否会有所帮助,因为我正在将 WebORB 用于 .NET,但在 Flex 中,您可以在 remoteObject 上设置凭据。在 WebORB.NET 中,您可以使用 AuthenticationHandler 来查看谁登录了。
      猜你喜欢
      • 2011-08-12
      • 1970-01-01
      • 2011-04-08
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-13
      相关资源
      最近更新 更多