【问题标题】:How to authenticate one Ruby on Rails app to another, using RESTful_authentication gem?如何使用 RESTful_authentication gem 对另一个 Ruby on Rails 应用程序进行身份验证?
【发布时间】:2009-07-08 21:00:07
【问题描述】:

有人有什么想法吗?情况是这样的:我有一个主要的 Rails 应用程序和一个辅助应用程序。辅助应用程序用于将 Web 服务请求转换为 RESTful PUT 到主应用程序。辅助应用程序尝试添加的资源需要身份验证。任何想法将不胜感激!谢谢!

【问题讨论】:

    标签: ruby-on-rails authentication rest restful-authentication


    【解决方案1】:

    ActiveResource 用于此目的:

    class MyModel < ActiveResource::Base
      self.site = OTHER_APP_URL
      self.user = OTHER_APP_USER
      self.password = OTHER_APP_PASSWORD
    
      # Rest of the code here
    end
    

    在此处阅读如何从 ActiveResource 与 RESTful API 对话:http://api.rubyonrails.org/classes/ActiveResource/Base.html

    【讨论】:

    • 感谢 Swan,在添加自己的答案之前,我没有看到您的答案。这肯定行得通,我几乎求助于 HTTP 身份验证,但是我找到了一种方法来利用我当前涉及 RESTful_authentication 和 Curb gems 的 RESTful 身份验证方案。
    • 我正在和我的一个朋友讨论这个问题,他在 RESTful webservices 方面有更多的经验,并认为引入状态(通过会话)打破了 REST 模型,这就是为什么 Rails 无疑提供了像你这样出色的机制如上所述。
    【解决方案2】:

    我想我可能通过调查我的一些 IM 联系人找到了自己的答案。最合乎逻辑的方法是使用Curb ruby​​ gem。从上述 API 中,只需启用 cookie jar,轻松进行身份验证,然后将 cookie 包含在需要身份验证的后续 HTTP 操作中;)

    (当我实现这个时会发布一些代码..)

    仍然会欣赏 cmets 和/或替代品!

    【讨论】:

    • ActiveResource 就是为此而生的,它提供了很多实用的方法和很棒的抽象。强烈推荐。不过感谢 Curb 上的指针,我一定会检查出来的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 2021-12-23
    • 2011-12-01
    • 1970-01-01
    相关资源
    最近更新 更多